Hi,
for($i=0;$i<mysql_num_rows($res);$i++)
Sind das dann 3 Millionen einzelne Updateanweisungen. Wow!
Vielleicht gewinnt man ein bisschen was, wenn man nicht so viele Update-Queries einzeln von PHP aus abfeuert -
$query="UPDATE data5 SET ".$cs[0].$cs[1]."=1,".$cs[2].$cs[3]."=1,".$cs[4].$cs[5]."=1,".$cs[6].$cs[7]."=1,".$cs[8].$cs[9]."=1 WHERE (c5id='$c5id') LIMIT 1;";
- sondern das hier lieber direkt MySQL-seitig mit dessen Stringfunktionen macht?
Wird bei 3 Mio. Datensaetzen vermutlich immer noch ziemlich lange dauern, und ggf. sogar abbrechen.
Dem koennte man entgegenwirken, in dem man das ganze intervalweise macht; oder aber, in dem man Abbrueche in Kauf nimmt, und sich beim Updaten in einer zusaetzlichen (temporaeren) Spalte ein Flag setzt, dass der Datensatz bereits bearbeitet wurde - und das Update jagt man dann nur ueber die Datensaetze, bei denen das Flag noch nicht gesetzt ist - so lange, bis man alle durch hat. (Ginge so natuerlich nur, wenn es nach einem abgebrochenen Update kein Rollback gibt.)
MfG ChrisB