当我在innodb表上运行optimize table时,我收到此消息。这是否表示该表已经过优化,但方式不同?
“table | optimize | note |表格不支持优化,而是重新创建+分析而不是|”
答案 0 :(得分:22)
对于InnoDB表,OPTIMIZE TABLE映射到ALTER TABLE,后者重建表以更新索引统计信息并释放聚簇索引中未使用的空间。从MySQL 5.1.27开始,当你在InnoDB表上运行它时,它会显示在OPTIMIZE TABLE的输出中,如下所示:
mysql> OPTIMIZE TABLE foo;
+----------+----------+----------+-----------------------------------------------------------
| Table | Op | Msg_type | Msg_text
+----------+----------+----------+-----------------------------------------------------------
| test.foo | optimize | note | Table does not support optimize, doing recreate + analyze ...
| test.foo | optimize | status | OK
+----------+----------+----------+-----------------------------------------------------------
您可以通过使用--skip-new或--safe-mode选项启动mysqld,使OPTIMIZE TABLE在其他存储引擎上工作。在这种情况下,OPTIMIZE TABLE只是映射到ALTER TABLE。