myisamchk supports the following options for table checking operations:
--check
,-c
Command-Line Format --check
Check 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-changed
Check only tables that have changed since the last check.
--extend-check
,-e
Command-Line Format --extend-check
Check 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-check
and have plenty of memory, setting thekey_buffer_size
variable 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 4.6.3.5, “Obtaining Table Information with myisamchk”.
--fast
,-F
Command-Line Format --fast
Check only tables that haven't been closed properly.
--force
,-f
Command-Line Format --force
Do a repair operation automatically if myisamchk finds any errors in the table. The repair type is the same as that specified with the
--recover
or-r
option.--information
,-i
Command-Line Format --information
Print informational statistics about the table that is checked.
--medium-check
,-m
Command-Line Format --medium-check
Do a check that is faster than an
--extend-check
operation. This finds only 99.99% of all errors, which should be good enough in most cases.--read-only
,-T
Command-Line Format --read-only
Do 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
,-U
Command-Line Format --update-state
Store information in the
.MYI
file to indicate when the table was checked and whether the table crashed. This should be used to get full benefit of the--check-only-changed
option, but you shouldn't use this option if the mysqld server is using the table and you are running it with external locking disabled.