
Nach der Konvertierung einer Tabelle von MyISAM nach InnoDB gibt der Befehl „show table status“ andere Zeilennummern zurück als die vom Befehl „count(*)“ angezeigten Zahlen. Das liegt wahrscheinlich am kompakten Zeilenformat, das in InnoDB-Tabellen verwendet wird.
Ich frage mich, ob es eine Möglichkeit gibt, mit dem Befehl „show table status“ schnell die richtigen Zeilennummern für alle Tabellen auf der InnoDB-Engine abzurufen, so wie es für MyISAM-Tabellen angezeigt wird.
Antwort1
Ich glaube, Sie haben Pech gehabt. Aus dem guten Handbuch unter:
http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html
Die Anzahl der Zeilen. Einige Speicher-Engines, wie etwa MyISAM, speichern die genaue Anzahl. Für andere Speicher-Engines, wie etwa InnoDB, ist dieser Wert ein Näherungswert und kann um bis zu 40 bis 50 % vom tatsächlichen Wert abweichen. Verwenden Sie in solchen Fällen SELECT COUNT(*), um eine genaue Anzahl zu erhalten.