phpbar.de logo

Mailinglisten-Archive

[dbs] Optimierung von Masseninserts

[dbs] Optimierung von Masseninserts

Stefan Robek stefan.robek at gmx.net
Die Mar 31 00:14:02 CEST 2009


Hallo Gruppe,

 

ich sitze hier gerade vor einem Problem, das mir ziemliche Kopfschmerzen
bereitet.

Ich habe mehrere csv-Dateien von unterschiedlicher Grösse, die Nachts in die
DB importiert werden sollen. Das ganze mache ich mit PHP in eine
MySQL-Datenbank. Jetzt habe ich das Problem, daß die Zeit pro csv-Datei
proportional ansteigt. Hier mal ein paar Messungen:

400kb -> 1,1 sek -> 523 Datensätze

2MB  -> 3,67 sek -> 901 Datensätze

2,6MB -> 3,9 sek -> 942 Datensätze

2MB -> 11,8 sek -> 2001 Datensätze

2,8MB -> 24,9 sek -> 3005 Datensätze

4,4MB -> 27,7 sek -> 3115 Datensätze

9,6MB -> 178,35 sek -> 8264 Datensätze

Die Zeitangaben sind Durchschnittswerte.

 

Da ich da teilweise Dateien bei habe, die auch gerne mal 50MB-80MB groß
sind(und davon dann auch mehrere), kann man sich vorstellen, daß mir das
viel zu lange dauert.

Möglichkeiten wie z.B. mit Prepared-Statements zu arbeiten oder den
Fulltext-Index vorher zu droppen und hinterher wieder einzufügen, hab ich
bereits ausgeschöpft.

 

Ich bin für jede Idee dankbar!

 

Gruß

Stefan


php::bar PHP Wiki   -   Listenarchive