Kalle_B: 90 sec für ein Update

Beitrag lesen

Hallöle,

habe ein Problem, das ich mir nicht erklären kann. Dieser ganz einfache Update (MySQL 5) dauert 95 sec:

<pre>94.77 sec:  
  
#~~~~~~~~~~~~  
# BUCHUNG  
#~~~~~~~~~~~~  
UPDATE tm_kontakte  
SET  
 slot_nr       =6  
,aussteller2_id=5843  
,gruppen_id    =0  
WHERE  besucher_id  =5571  
AND    aussteller_id=5177  
AND    slot_nr      =0  
<pre>

So habe ich die Zeit gestoppt:

list($usec, $sec) = explode(" ", microtime()); $q_start = (float)$usec + (float)$sec;  
    $res_buch = mysql_query( $q, $conn_id ); zeigSqlFehler( $q, $conn_id );  
list($usec, $sec) = explode(" ", microtime()); $q_ende = (float)$usec + (float)$sec;  
$q_dauer = round(($q_ende - $q_start) *100) /100;  
if ( $q_dauer > 1.0 ) echo "<pre>".$q_dauer." sec:\n".$q."<pre>\n";  
echo mysql_affected_rows( $conn_id )." Saetze gebucht<br>\n";  

In der Tabelle tm_kontakte gibt es diese Keys mit den Hinweisen:

PRIMARY PRIMARY 34941   id
bes_aus UNIQUE 34941   besucher_id
aussteller_id
aus_grp_bes UNIQUE 34941   aussteller_id
gruppen_id
besucher_id
aus_bes UNIQUE 34941   aussteller_id
besucher_id
slot_nr
ausst INDEX 5823   aussteller_id
slot_nr
ausst2 INDEX 8735   aussteller2_id
slot_nr
bes_slots INDEX 11647   besucher_id
slot_nr
Die Index-Typen INDEX und UNIQUE sollten nicht gleichzeitig für die Spalte besucher\_id gesetzt sein
Die Index-Typen INDEX und UNIQUE sollten nicht gleichzeitig für die Spalte aussteller\_id gesetzt sein
Es sollte nicht mehr als ein Index des Typs UNIQUE für die Spalte aussteller\_id gesetzt sein

Die Datenbank selbst ist flott. Das Stornieren dauert 0.22 sec

Lieben Gruß, Kalle