To coalesce fragmented rows and eliminate wasted space that results from deleting or updating rows, run myisamchk in recovery mode:
You can optimize a table in the same way by using the
OPTIMIZE TABLE SQL statement.
OPTIMIZE TABLE does a table repair and a key analysis, and also sorts the index
tree so that key lookups are faster. There is also no possibility of unwanted interaction between a utility and
the server, because the server does all the work when you use
OPTIMIZE TABLE. See Section
OPTIMIZE TABLE Syntax".
myisamchk has a number of other options that you can use to improve the performance of a table:
-a: Perform key distribution analysis. This improves join performance by
enabling the join optimizer to better choose the order in which to join the tables and which indexes it
-S: Sort the index blocks.
This optimizes seeks and makes table scans that use indexes faster.
-R : Sort data rows
according to a given index. This makes your data much more localized and may speed up range-based
ORDER BY operations that use this index.
For a full description of all available options, see Section 4.6.3, "myisamchk — MyISAM Table-Maintenance Utility".