![]() |
Datenbank: mysql • Version: 5 • Zugriff über: noch nicht
Was ist schneller? MySqlDirect oder ueber die .dll?
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... |
AW: Was ist schneller? MySqlDirect oder ueber die .dll?
Verwendest du auch prepared Statements?
|
AW: Was ist schneller? MySqlDirect oder ueber die .dll?
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? |
AW: Was ist schneller? MySqlDirect oder ueber die .dll?
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??? |
AW: Was ist schneller? MySqlDirect oder ueber die .dll?
Arbeitest du denn mit Parametern und Prepare?
|
AW: Was ist schneller? MySqlDirect oder ueber die .dll?
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.
|
AW: Was ist schneller? MySqlDirect oder ueber die .dll?
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. |
AW: Was ist schneller? MySqlDirect oder ueber die .dll?
Zitat:
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 |
AW: Was ist schneller? MySqlDirect oder ueber die .dll?
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, .. |
AW: Was ist schneller? MySqlDirect oder ueber die .dll?
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz