MySQL 5.7 Reference Manual Including MySQL NDB Cluster 7.5 and NDB Cluster 7.6
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 Section 13.7.2.4, “OPTIMIZE TABLE Statement”.
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 Section 4.6.3, “myisamchk — MyISAM Table-Maintenance Utility”.