Из документации :
Для таблиц 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.