Nina2: Mysql: VARCHAR

Beitrag lesen

Hallo,

gerade muss ich mich mit einer Tabelle herumärgern, deren Design gerade umgestellt wird.
Sie umfasst etwa 3 Mio Datensätze (insgesamt 150MB), sodass es sehr auffällt, wie langsam die Update Queries bearbeitet werden, obwohl auf c5id ( INT (7) ) im WHERE clause ein Index gesetzt wurde.
Nun frage ich Euch an dieser Stelle, ob das denn sein kann, dass die Ausführung jedes der Update Queries ca 15 sec dauert oder ob bei dem Index irgendwas schief gelaufen ist? :(
Oder ob es alternativ dazu eine Möglichkeit, das abseits vom Script mit einem schönen Mysql Query lösen lässt?
Es wird von jedem Datensatz (ID=c5id) das VARCHAR(6) Feld namens cs ausgelesen: Davon die ersten beiden Chars bezeichnen das erste Feld, das auf 1 gesetzt werden soll; die nächsten 2 das 2. Feld und die nächsten 2 das 3.Feld. Dann soll es gesetzt werden und mit der nächsten Zeile weitergehen...

$query='SELECT c5id,cs FROM data5;';
$res=mysql_query($query);
for($i=0;$i<mysql_num_rows($res);$i++)
{
 $c5id=mysql_result($res,$i,'c5id');
 $cs=mysql_result($res,$i,'cs');
 $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;";
...
}

Danke für Tipps