утилита для обслуживания таблиц MyISAM (MyISAM table-maintenance utility)
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. Options are grouped by type
of operation.
• --HELP
, -H
Display a help message and exit. Options are presented in a
single list.
• --debug=
debug_options, -#
debug_options
Write a debugging log. A typical debug_options string is
´d:t:o,file_name´. The default is
´d:t:o,/tmp/myisamchk.trace´.
• --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. If you
are running mysqld
with external locking disabled, the table
can be locked only by another myisamchk
command.
• --print-defaults
Print the program argument list and exit.
• --no-defaults
Don't read default options from any option file.
• --defaults-file=#
Only read default options from the given file.
• --defaults-extra-file=#
Read this file after the global files are read.
You can also set the following variables by using
--
var_name=
value syntax:
┌─────────────────────┬───────────────────┐
│Variable
│ Default Value
│
├─────────────────────┼───────────────────┤
│decode_bits │ 9 │
├─────────────────────┼───────────────────┤
│ft_max_word_len │ version-dependent │
├─────────────────────┼───────────────────┤
│ft_min_word_len │ 4 │
├─────────────────────┼───────────────────┤
│ft_stopword_file │ built-in list │
├─────────────────────┼───────────────────┤
│key_buffer_size │ 523264 │
├─────────────────────┼───────────────────┤
│key_cache_block_size │ 1024 │
├─────────────────────┼───────────────────┤
│myisam_block_size │ 1024 │
├─────────────────────┼───────────────────┤
│read_buffer_size │ 262136 │
├─────────────────────┼───────────────────┤
│sort_buffer_size │ 2097144 │
├─────────────────────┼───────────────────┤
│sort_key_blocks │ 16 │
├─────────────────────┼───────────────────┤
│stats_method │ nulls_unequal │
├─────────────────────┼───────────────────┤
│write_buffer_size │ 262136 │
└─────────────────────┴───────────────────┘
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.1.4, '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.