De la documentación :
Para las tablas de InnoDB, OPTIMIZE TABLE se asigna a ALTER TABLE, que reconstruye la tabla para actualizar las estadísticas del índice y liberar espacio no utilizado en el índice agrupado. A partir de MySQL 5.1.27, esto se muestra en la salida de OPTIMIZE TABLE cuando lo ejecuta en una tabla InnoDB, como se muestra aquí:
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
+----------+----------+----------+-----------------------------------------------------------
Puede hacer que OPTIMIZE TABLE funcione en otros motores de almacenamiento iniciando mysqld con la opción --skip-new o --safe-mode. En este caso, OPTIMIZE TABLE solo se asigna a ALTER TABLE.