To coalesce fragmented rows and eliminate wasted space that results from deleting or updating rows, run myisamchk in recovery mode:
shell> myisamchk -r tbl_name
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 OPTIMIZE TABLE
Syntax.
myisamchk has a number of other options that you can use to improve the performance of a table:
--analyze
or
-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 should use.
--sort-index
or
-S
: Sort the index blocks. This optimizes
seeks and makes table scans that use indexes faster.
--sort-records=
or index_num
-R
:
Sort data rows according to a given index. This makes your
data much more localized and may speed up range-based
index_num
SELECT
and ORDER
BY
operations that use this index.
For a full description of all available options, see myisamchk.