OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLEtbl_name[,tbl_name] ...
          OPTIMIZE TABLE debe usarse si ha borrado
          una gran parte de la tabla o si ha hecho varios cambios en una
          tabla con registros de longitud variable (tablas que tienen
          columnas VARCHAR, BLOB,
          o TEXT ). Los registros borrados se
          mantienen en una lista enlazada y operaciones
          INSERT posteriores reúsan posiciones de
          antiguos registros. Puede usar OPTIMIZE
          TABLE para reclamar el usuario no usado y para
          defragmentar el fichero de datos.
        
          En la mayoría de inicializaciones, no necesita ejecutar
          OPTIMIZE TABLE para nada. Incluso si hace
          muchas actualizaciones a registros de longitud variables, no
          es probable que necesite hacerlo más de una vez a la semana o
          mes y sólo en ciertas tablas.
        
          Actualmente, OPTIMIZE TABLE funciona sólo
          en tablas MyISAM, BDB y
          InnoDB .
        
          Para tablas MyISAM , OPTIMIZE
          TABLE funciona como sigue:
        
Si la tabla ha borrado o dividido registros, repare la tabla.
Si las páginas índice no están ordenadas, ordénelas.
Si las estadísticas no están actualizadas (y la reparación no puede hacerse ordenando el índice), actualícelas.
          Para tablas BDB , OPTIMIZE
          TABLE es mapea como ANALYZE
          TABLE. Para tablas InnoDB , se
          mapea con ALTER TABLE, que reconstruye la
          tabla. Reconstruye las estadísticas actualizadas de índice y
          libera espacio no usado en el índice clusterizado. Consulte
          Sección 13.5.2.1, “Sintaxis de ANALYZE TABLE”.
        
          Puede hacer que OPTIMIZE TABLE funcione con
          otros tipos de tabla arrancando mysqld con
          la opción --skip-new o
          --safe-mode ; en este caso
          OPTIMIZE TABLE se mapea con ALTER
          TABLE.
        
          Tenga en ceunta que MySQL bloquea la tabla mientras se ejecuta
          OPTIMIZE TABLE .
        
          En MySQL 5.0, los comandos OPTIMIZE TABLE
          se escriben en el log binario a no ser que la palabra
          NO_WRITE_TO_BINLOG opcional(o su alias
          LOCAL) se use. Esto se hace para que los
          comandos OPTIMIZE TABLE se usen en MySQL
          server actuando como maestro de replicación se replique por
          defecto en el esclavo de replicación.
        
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

