Från dokumentationen :
För InnoDB-tabeller mappas OPTIMIZE TABLE till ALTER TABLE, vilket bygger om tabellen för att uppdatera indexstatistik och frigöra oanvänt utrymme i det klustrade indexet. Från och med MySQL 5.1.27 visas detta i utgången av OPTIMIZE TABLE när du kör den på en InnoDB-tabell, som visas här:
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
+----------+----------+----------+-----------------------------------------------------------
Du kan få OPTIMIZE TABLE att fungera på andra lagringsmotorer genom att starta mysqld med alternativet --skip-new eller --safe-mode. I det här fallet mappas OPTIMIZE TABLE bara till ALTER TABLE.