Z dokumentacji :
W przypadku tabel InnoDB funkcja OPTIMIZE TABLE jest mapowana na ALTER TABLE, która przebudowuje tabelę w celu zaktualizowania statystyk indeksów i zwolnienia nieużywanego miejsca w indeksie klastrowym. Począwszy od MySQL 5.1.27, jest to wyświetlane w wyniku działania OPTIMIZE TABLE po uruchomieniu go na tabeli InnoDB, jak pokazano tutaj:
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
+----------+----------+----------+-----------------------------------------------------------
Możesz sprawić, by funkcja OPTIMIZE TABLE działała na innych silnikach pamięci masowej, uruchamiając mysqld z opcją --skip-new lub --safe-mode. W tym przypadku OPTIMIZE TABLE jest po prostu mapowana na ALTER TABLE.