Оптимизировать таблицу innodb - PullRequest
15 голосов
/ 12 мая 2010

Когда я запускаю таблицу оптимизации на таблице innodb, я получаю это сообщение.Означает ли это, что таблица уже была оптимизирована, но другим способом?

"таблица | оптимизировать | примечание | Таблица не поддерживает оптимизацию, вместо этого выполняется пересоздание + анализ |"

1 Ответ

22 голосов
/ 12 мая 2010

Из документации :

Для таблиц InnoDB OPTIMIZE TABLE сопоставляется с ALTER TABLE, который перестраивает таблицу для обновления статистики индекса и освобождения неиспользуемого пространства в кластерном индексе. Начиная с MySQL 5.1.27, это отображается в выводе OPTIMIZE TABLE при запуске его в таблице InnoDB, как показано здесь:

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                                                            
+----------+----------+----------+-----------------------------------------------------------

Вы можете заставить OPTIMIZE TABLE работать на других механизмах хранения, запустив mysqld с опцией --skip-new или --safe-mode. В этом случае OPTIMIZE TABLE просто отображается на ALTER TABLE.

...