Auf die Indices muß man in der Tat achten. Irgendwo gibt es in sowohl in mySQLDumper als auch in myOOS[Dumper] eine Checkbox dafür (weiß gerade nicht wo, länger nicht benutzt). Es ist nämlich sinnvoll für einen schnnelleren Import die Indices zu deaktivieren um sie anschließend wieder zu aktivieren.
Jedenfalls kann es sein, wenn man nicht aufpasst oder es schlicht nicht weiß, daß nach Reimport oder Wiederherstellung einer DB oder auch nur bestimmter Tabellen, die Indices deaktiviert sind.
Man kann das prüfen indem man diesen Befehl absetzt:
SHOW INDEXES FROM tabellenname;
Das Problem ist nur, daß man das per Hand für alle Tabellen machen müsste.
Wer es braucht kann ein kleines PHP-Skript bauen und im Backend implementieren.
Mit diesem Code schreibt man alle relevanten Daten in ein Array und kann sich dieses entweder ausgeben lassen oder die Daten in eine HTML-Ausgabe (z.B. Tabelle) schreiben.
require_once(dirname(__FILE__).'/includes/application_top.php');$table_query = xtc_db_query
("SHOW TABLES");while ($row = xtc_db_fetch_row
($table_query)) { $tables[] = $row[0];}natsort($tables);foreach($tables as $key => $table_name) { $ind_sql = "SHOW INDEXES FROM ".$table_name; $ind_query = xtc_db_query
($ind_sql); while($indxs = xtc_db_fetch_array
($ind_query)) { $indxs_table_arr[$table_name][] = array('Key_name' => $indxs['Key_name'], 'Column_name' => $indxs['Column_name'], 'Cardinality' => $indxs['Cardinality'], 'Comment' => $indxs['Comment']); }}//echo '<pre>'.print_r($indxs_table_arr, true).'</pre>'; Wenn bei Comment "disabled" steht sind die Indices deaktiviert und man muß diesen Befehl laufen lassen:
ALTER TABLE tabellenname ENABLE KEYS;
Wenn Cardinality leer oder 0 ist sollte man
ANALYZE TABLE tabellenname;
laufen lassen.
Die Cardinality zeigt an wieviele verschiedene Einträge für einen Index die jeweilige Tabelle hat.
Wenn die Cardinality leer ist oder 0 wirkt der betroffene Index nicht und die Queries die ihn benutzen sollten sind langsam.
So sollte z.B. bei Verwendung von Artikelnummern der Index
idx_products_model auf der Tabelle
products der Anzahl der Artikel in der Tabelle entsprechen.
Das alles per Hand zu machen ist natürlich aufwändig.
Ich empfehle deshalb sich ein Skript zu bauen welches eine Art Datenbank-Pflege-Tool darstellt und mit welchem man die erwähnten Prüfungen und Fixes per Click durchführen kann.
So ein Tool fehlt eigtl. im
modified eCommerce Shop.
Gruß,
noRiddle