AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Was ist schneller? MySqlDirect oder ueber die .dll?
Thema durchsuchen
Ansicht
Themen-Optionen

Was ist schneller? MySqlDirect oder ueber die .dll?

Ein Thema von DelTurbo · begonnen am 14. Okt 2011 · letzter Beitrag vom 17. Okt 2011
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.214 Beiträge
 
Delphi 2007 Architect
 
#1

Was ist schneller? MySqlDirect oder ueber die .dll?

  Alt 14. Okt 2011, 13:03
Datenbank: mysql • Version: 5 • Zugriff über: noch nicht
Hi, eine frage an die spezialisten. Ich habe ca. 800.000 einträge in einer SQLite3. Nun habe ich mit mysqldirect eine schleife gemacht, die die daten auf einen mysqlserver (Debian5) kopiert.

Das ist langsam ohne ende. Erst dachte ich die schleife geht nicht, da er lange auf 0% stand. Aber die schleife geht.

Wenn ich nun über die libmysql??.dll gehe, z.b. ZEOS, bekomme ich das irgendwie schneller?

Ich hatte schon überlegt Threads anzuschmeissen, aber ich brauche die LastInsertID.

Ich hoffe jemand hat eine idee...
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Was ist schneller? MySqlDirect oder ueber die .dll?

  Alt 14. Okt 2011, 13:16
Verwendest du auch prepared Statements?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Was ist schneller? MySqlDirect oder ueber die .dll?

  Alt 14. Okt 2011, 13:17
Ist das eine einmalige Sache oder musst Du das häufiger machen?
Scheint mir eher eine Frage des Verfahrens als der Komponenten.

P.S.: Wie siehts mir Indizes, Triggern, Constraints auf der Zieltabelle aus?
Gruß, Jo
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.214 Beiträge
 
Delphi 2007 Architect
 
#4

AW: Was ist schneller? MySqlDirect oder ueber die .dll?

  Alt 14. Okt 2011, 13:26
Hallo ihr beiden.

Also, in der datenbank möchte ich meine USB-Platten, also die filenamen, grössen etc. speichern.

Ich habe 2 Tabellen. Einmal mit dem eigentlichen Pfadnamen (dort gibt es ein blobfeld mit den ids der dateien die zu dem path gehören). Und halt die Tabelle mit den eigentlichen dateinamen.

Eingefügt wird es über

INSERT INTO FilesTable(Filename,Size,Date) VALUES ("test",1,1); <-- achtung, nur ein beispiel!!!

Die LastInsertID merke ich mir und Trage sie in das blobfeld der 1. Tabelle ein.

Gibt es da was besseres, schnelleres als INSERT???
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Was ist schneller? MySqlDirect oder ueber die .dll?

  Alt 14. Okt 2011, 13:32
Arbeitest du denn mit Parametern und Prepare?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.214 Beiträge
 
Delphi 2007 Architect
 
#6

AW: Was ist schneller? MySqlDirect oder ueber die .dll?

  Alt 14. Okt 2011, 13:41
Nein, so wie ich oben geschrieben habe. Da ist nix davor oder dahinter. Wenn du mir sagen könntest wie ich das anwende (mit der beispielzeile oben) dann wär ich dir dankbar.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: Was ist schneller? MySqlDirect oder ueber die .dll?

  Alt 14. Okt 2011, 14:01
Du trägst ID (welche? PK der Dateinamenssätze?) in ein BLOB Feld ein?
Das wäre nicht unbedingt ein klassisches Verfahren in RDBMS.
BLOB Verarbeitung ist inkl. caching usw auch nicht unbedingt das performanteste.
Gruß, Jo
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.214 Beiträge
 
Delphi 2007 Architect
 
#8

AW: Was ist schneller? MySqlDirect oder ueber die .dll?

  Alt 14. Okt 2011, 14:16
Du trägst ID (welche? PK der Dateinamenssätze?) in ein BLOB Feld ein?
Das wäre nicht unbedingt ein klassisches Verfahren in RDBMS.
BLOB Verarbeitung ist inkl. caching usw auch nicht unbedingt das performanteste.
Ich habe das Programm für sqlite3 gemacht. Da das blob feld kleiner ist, ist es über wlan schneller.

Natürlich hast du recht, alleine das man den blob Escapen muss wird er eh grösser.

Zu dem Prepare find ich leider garnix. Kann MySqlDirect das überhaupt? Oder gibt es einen anderen "trick" mit dem man z.b. sagen kann, pass auf hier kommen 50 datensätze.

Sorry ist was platt ausgedrückt
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#9

AW: Was ist schneller? MySqlDirect oder ueber die .dll?

  Alt 14. Okt 2011, 14:34
Ich verstehe glaub ich Deine Gründe für BLOB nicht richtig und vor allem was Du damit bezwecken willst. In dem Blob steht dann später eine Zahlenreihe von ID aus der anderen Tabelle?
Normalerweise würde man in der "Files" Tabelle ein Feld für den Verweis auf die ID des "Path"-Tabellensatzes spendieren. Dann könnte man es nachher auch normal mit SQL bearbeiten und abfragen, reporten, ..
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#10

AW: Was ist schneller? MySqlDirect oder ueber die .dll?

  Alt 14. Okt 2011, 14:38
Sehe ich das richtig, dass die SQLite-Datenbank bei dir lokal leigt und der Debian-Server im Internet steht? Dann ist wichtig wie schnell dein Internet ist. Hier würde es sich lohnen, die SQLite-Datenbank komplett hochzuladen und auf dem Server selbst in MySQL zu übertragen. Da gibt es auch mit Sicherheit schon vorgefertigte Tools.

Ansonsten muss es doch auch möglich sein, ähnlich wie bei "mysqldump" den Inhalt der SQLite-Datenbank als SQL zu exportieren. Dann kannst du ein Kompressionsverfahren (zB. bzip) drüber laufen lassen und es anschließend hochladen.

Liebe Grüße,
Valentin
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz