Da documentação :
Para tabelas InnoDB, OPTIMIZE TABLE é mapeado para ALTER TABLE, que reconstrói a tabela para atualizar estatísticas de índice e liberar espaço não utilizado no índice clusterizado. A partir do MySQL 5.1.27, isso é exibido na saída de OPTIMIZE TABLE quando você o executa em uma tabela InnoDB, conforme mostrado aqui:
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
+----------+----------+----------+-----------------------------------------------------------
Você pode fazer OPTIMIZE TABLE funcionar em outros mecanismos de armazenamento iniciando o mysqld com a opção --skip-new ou --safe-mode. Neste caso, OPTIMIZE TABLE é apenas mapeado para ALTER TABLE.