Mailinglisten-Archive |
Hallo, Thomas Winter wrote: > Am Monday 17 July 2006 11:29 schrieb Sascha Grossenbacher: > Hi, > so sieht es zur Zeit aus: > > > while (!feof($dz)) { > $buffer = fgets($dz, 4048); > $zeile = explode('\n',$buffer); > foreach ($zeile as $key => $value) { > $dfeld = explode(',',$value); > # SQL Abfrage auf doppelte Datensaetze > # wenn nicht doppelt dann speichern > } > } > > Es ist ab dem ersten Datensatz langsam und es ist schon langsam auch wenn ich > nicht speichere. > > Ein so großes Array sollte sich doch dabei gar nicht aufbauen. So wie ich das noch Verstanden habe, wird bei jedem Schleifendurchgang eine neue Datenbankverbindung geöffnet. Dies macht keinen Sinn. Verlagere die Verbindung zur Datenbank über die Schleife. Dadurch sollte das Skript auch (entscheidend?) schneller werden. Wie bereits von anderen erwähnt sind Indexe hierbei auch sehr wichtig. Die Verwendung von Full Table Locks können die Abfragen auf eine Datenbank ebenfalls beschleunigen. Darüber hinaus stellst du auch sicher, das dir niemand in die Verarbeitung hinein funkt. grüße Martin
php::bar PHP Wiki - Listenarchive