8.2.1. myisamchk General Options
The options described in this section can be used for any type
of table maintenance operation performed by
myisamchk. The sections following this one
describe options that pertain only to specific operations,
such as table checking or repairing.
-
--help
, -?
Display a help message and exit.
-
--debug=debug_options
,
-# debug_options
Write a debugging log. The
debug_options
string often is
'd:t:o,file_name
'
.
-
--silent
, -s
Silent mode. Write output only when errors occur. You can
use -s
twice (-ss
) to
make myisamchk very silent.
-
--verbose
, -v
Verbose mode. Print more information about what the
program does. This can be used with -d
and -e
. Use -v
multiple
times (-vv
, -vvv
) for
even more output.
-
--version
, -V
Display version information and exit.
-
--wait
, -w
Instead of terminating with an error if the table is
locked, wait until the table is unlocked before
continuing. Note that if you are running
mysqld with external locking disabled,
the table can be locked only by another
myisamchk command.
You can also set the following variables by using
--var_name
=value
syntax:
The possible myisamchk variables and their
default values can be examined with myisamchk
--help:
sort_buffer_size
is used when the keys are
repaired by sorting keys, which is the normal case when you
use --recover
.
key_buffer_size
is used when you are
checking the table with --extend-check
or
when the keys are repaired by inserting keys row by row into
the table (like when doing normal inserts). Repairing through
the key buffer is used in the following cases:
You use --safe-recover
.
The temporary files needed to sort the keys would be more
than twice as big as when creating the key file directly.
This is often the case when you have large key values for
CHAR
, VARCHAR
, or
TEXT
columns, because the sort
operation needs to store the complete key values as it
proceeds. If you have lots of temporary space and you can
force myisamchk to repair by sorting,
you can use the --sort-recover
option.
Repairing through the key buffer takes much less disk space
than using sorting, but is also much slower.
If you want a faster repair, set the
key_buffer_size
and
sort_buffer_size
variables to about 25% of
your available memory. You can set both variables to large
values, because only one of them is used at a time.
myisam_block_size
is the size used for
index blocks.
stats_method
influences how
NULL
values are treated for index
statistics collection when the --analyze
option is given. It acts like the
myisam_stats_method
system variable. For
more information, see the description of
myisam_stats_method
in
Section 5.2.2, “Server System Variables”, and
Section 7.4.7, “MyISAM
Index Statistics Collection”.
ft_min_word_len
and
ft_max_word_len
indicate the minimum and
maximum word length for FULLTEXT
indexes.
ft_stopword_file
names the stopword file.
These need to be set under the following circumstances.
If you use myisamchk to perform an
operation that modifies table indexes (such as repair or
analyze), the FULLTEXT
indexes are rebuilt
using the default full-text parameter values for minimum and
maximum word length and the stopword file unless you specify
otherwise. This can result in queries failing.
The problem occurs because these parameters are known only by
the server. They are not stored in MyISAM
index files. To avoid the problem if you have modified the
minimum or maximum word length or the stopword file in the
server, specify the same ft_min_word_len
,
ft_max_word_len
, and
ft_stopword_file
values to
myisamchk that you use for
mysqld. For example, if you have set the
minimum word length to 3, you can repair a table with
myisamchk like this:
shell> myisamchk --recover --ft_min_word_len=3 tbl_name
.MYI
To ensure that myisamchk and the server use
the same values for full-text parameters, you can place each
one in both the [mysqld]
and
[myisamchk]
sections of an option file:
[mysqld]
ft_min_word_len=3
[myisamchk]
ft_min_word_len=3
An alternative to using myisamchk is to use
the REPAIR TABLE
, ANALYZE
TABLE
, OPTIMIZE TABLE
, or
ALTER TABLE
. These statements are performed
by the server, which knows the proper full-text parameter
values to use.