ChrisB: Mysql: VARCHAR

Beitrag lesen

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