myisamchk supports the following options for table checking operations:
--check,-cCommand-Line Format --checkCheck the table for errors. This is the default operation if you specify no option that selects an operation type explicitly.
-
Command-Line Format --check-only-changedCheck only tables that have changed since the last check.
--extend-check,-eCommand-Line Format --extend-checkCheck the table very thoroughly. This is quite slow if the table has many indexes. This option should only be used in extreme cases. Normally, myisamchk or myisamchk --medium-check should be able to determine whether there are any errors in the table.
If you are using
--extend-checkand have plenty of memory, setting thekey_buffer_sizevariable to a large value helps the repair operation run faster.See also the description of this option under table repair options.
For a description of the output format, see Section 6.6.4.5, “Obtaining Table Information with myisamchk”.
--fast,-FCommand-Line Format --fastCheck only tables that haven't been closed properly.
--force,-fCommand-Line Format --forceDo a repair operation automatically if myisamchk finds any errors in the table. The repair type is the same as that specified with the
--recoveror-roption.--information,-iCommand-Line Format --informationPrint informational statistics about the table that is checked.
--medium-check,-mCommand-Line Format --medium-checkDo a check that is faster than an
--extend-checkoperation. This finds only 99.99% of all errors, which should be good enough in most cases.--read-only,-TCommand-Line Format --read-onlyDo not mark the table as checked. This is useful if you use myisamchk to check a table that is in use by some other application that does not use locking, such as mysqld when run with external locking disabled.
--update-state,-UCommand-Line Format --update-stateStore information in the
.MYIfile to indicate when the table was checked and whether the table crashed. This should be used to get full benefit of the--check-only-changedoption, but you shouldn't use this option if the mysqld server is using the table and you are running it with external locking disabled.