Syntax:
OPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE
    tbl_name [, tbl_name] ...

OPTIMIZE TABLE should be used if you have deleted a large part of a
table or if you have made many changes to a table with variable-length
rows (tables that have VARCHAR, VARBINARY, BLOB, or TEXT columns).
Deleted rows are maintained in a linked list and subsequent INSERT
operations reuse old row positions. You can use OPTIMIZE TABLE to
reclaim the unused space and to defragment the data file.

This statement requires SELECT and INSERT privileges for the table.

Beginning with MySQL 5.1.27, OPTIMIZE TABLE is also supported for
partitioned tables. Also beginning with MySQL 5.1.27, you can use ALTER
TABLE ... OPTIMIZE PARTITION to optimize one or more partitions; for
more information, see [HELP ALTER TABLE], and
http://dev.mysql.com/doc/refman/5.1/en/partitioning-maintenance.html.

URL: http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

