Das ist wirklich eine Informationsbotschaft.
Wahrscheinlich führen Sie OPTIMIZE für eine InnoDB- Tabelle aus (Tabelle, die die InnoDB-Speicher-Engine anstelle der MyISAM- Speicher-Engine verwendet).
InnoDB unterstützt OPTIMIZE nicht wie MyISAM. Es macht etwas anderes. Es erstellt eine leere Tabelle, kopiert alle Zeilen aus der vorhandenen Tabelle und löscht im Wesentlichen die alte Tabelle, benennt die neue Tabelle um und führt dann eine ANALYSE aus, um Statistiken zu sammeln. Das ist der nächste Schritt, den InnoDB zu einer OPTIMIERUNG machen kann.
Die Meldung, die Sie erhalten, ist im Grunde, dass der MySQL-Server wiederholt, was die InnoDB-Speicher-Engine dem MySQL-Server gesagt hat:
Tabelle unterstützt keine Optimierung , sagt die InnoDB-Speicher-Engine ...
"Ich (die InnoDB-Speicher-Engine) mache keine OPTIMIZE-Operation wie mein Freund (die MyISAM-Speicher-Engine)."
"stattdessen neu erstellen + analysieren" lautet die InnoDB-Speicher-Engine und sagt ...
"Ich habe beschlossen, eine andere Reihe von Operationen durchzuführen, um ein gleichwertiges Ergebnis zu erzielen."
OPTIMIZE TABLE
Funktioniert gut mit der InnoDB-Engine gemäß dem offiziellen Support-Artikel: http://dev.mysql.com/doc/refman/5.5/en/optimize-table.htmlSie werden feststellen, dass durch die Optimierung von InnoDB-Tabellen die Tabellenstruktur neu erstellt und die Indexstatistik aktualisiert wird (so etwas wie
ALTER TABLE
).Beachten Sie, dass diese Nachricht nur zur Information dienen kann und die sehr wichtige Information der Status Ihrer Anfrage ist: nur OK!
quelle
Die beste Option ist das Erstellen einer neuen Tabelle mit denselben Eigenschaften
Benennen Sie NEW.NAME.TABLE und TABLE.CRASH um
Nach der Arbeit gut löschen
quelle
Die bessere Option ist, eine neue Tabelle zu erstellen, die Zeilen in die Zieltabelle zu kopieren, die eigentliche Tabelle zu löschen und die neu erstellte Tabelle umzubenennen. Diese Methode eignet sich für kleine Tabellen,
quelle