tausende mysql_query("UPDATE ..."); legen DB lahm

uprocka

Grünschnabel
Hallo,

ich habe folgendes Problem:

Ich lasse eine Datei Zeilenweise auslesen ca. 33.000 Zeilen,
dann innerhalb der while-Schleife lasse ich die ausgelesenen Daten per Update in die DB schreiben.
Dabei geht das System total in die Knie und es dauert etliche Minuten bis er fertig ist.

Bspl. Skript:
PHP:
$file = 'datei.txt';
$fp = @fopen($file, "r") or die ("Kann Datei nicht lesen.");

while ($line = fgets($fp, 1024)) {
  $wert = substr($line, 30, 10); //Lese nur Zeichen 30-39 ein
  $query = "UPDATE table SET wert = '".addslashes($wert)."' WHERE wert2 = '5'";
  mysql_query($query);


}
fclose($fp);

Warum geht MYSQL so in die Knie?

Das Problem dürfte nicht an der Art die Datei auszulesen liegen, wenn ich das gleiche
mit einer for Schleife simuliere, also ein INSERT oder UPDATE 33.000 ausführe, hab ich den gleichen Effekt.

Danke im voraus
uprocka
 
uprocka hat gesagt.:
Warum geht MYSQL so in die Knie?

Mmmh.....MySQL und PHP sind kein Perpetuum Mobile.
Es dauert halt, 33.000 Zeilen auszulesen und zu verarbeiten(mit einer Skriptsprache sicher weitaus länger, als mit einer Programmiersprache)....und Ressourcen verbraucht es auch.

Oder kennst du irgendetwas, was zu einer solchen Aktion in sekundenschnelle fähig wäre, ohne dabei den Rechner zu belasten:confused:
 
Zurück