myisamchk 一般的なオプション

このセクションで紹介されているオプションは myisamchk によって実行される全てのテーブル メンテナンス オペレーションに使用することができます。このセクション以降のセクションは特定のオペレーションに関するオプションのみを説明します。例えば、テーブルのチェックや修復。.

--var_name=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
myisam_block_size 1024
read_buffer_size 262136
sort_buffer_size 2097144
sort_key_blocks 16
stats_method nulls_unequal
write_buffer_size 262136

可能な myisamchk 変数とデフォルト値は myisamchk --help で確認することができます。

sort_buffer_size はソートキーでキーが修復された場合に使用されます。これは --recover を使用した場合は普通です。

key_buffer_size--extend-check でテーブルをチェックするとき、もしくはテーブルに行ごとにキーを入力することでキーを修復する際に使用されます(普通にインサートする場合の様に)。キーバッファを通しての修復は以下の場合使用されます。

キーバッファを使用して修復するのはソートよりもはるかにディスクの空き容量に余裕を持たせることができますが、速度も落ちます。

修復スピードを早くする場合、key_buffer_sizesort_buffer_size 変数を使用できるメモリの25%にセットしてください。同時に使用されることは無いので、双方の変数の値を大きくセットすることができます。

myisam_block_size はインデックス ブロックに使用されるサイズです。

stats_methodNULL 値が、--analyze オプションを与えられたときに、インデックス統計の集計の際にどう扱われるかに影響します。myisam_stats_method システム変数のような働きをします。詳しくは、in 項 「システム変数」 と 項 「MyISAMインデックス統計コレクション」に含まれる myisam_stats_method の詳細を参照してください。

ft_min_word_lenft_max_word_lenFULLTEXT インデックスの最低と最高文字長を指します。 ft_stopword_file はストップワードファイルに名前をつけます。以下の状態でこれらをセットしなければいけません。

myisamchk を使用してテーブル インデックスを改良するオペレーションを実行する場合、(例えば分析や修復)他に特定されない場合、FULLTEXT インデックスはデフォルト フル テキスト パラメータ値を、最低・最高文字長とストップワードファイルを使用して再構築されます。これはクエリの失敗につながることがあります。

この問題は、パラメータがサーバのみに理解されていることにより発生します。MyISAM インデックスファイルには記憶されていません。サーバ内の最低・最高文字長もしくはストップワードファイルを改良した上で、問題を回避するには、ft_min_word_len, ft_max_word_lenft_stopword_file の値を mysqld で使用する myisamchk に特定してください。例えば、最低文字長を3にセットした場合、テーブルは myisamchk で以下の様に修復できます。

shell> myisamchk --recover --ft_min_word_len=3 tbl_name.MYI

myisamchk とサーバがフル テキスト パラメータに同じ値を確実に使用するには、それぞれオプションファイルの [mysqld][myisamchk] セクションに置いてください。

[mysqld]
ft_min_word_len=3

[myisamchk]
ft_min_word_len=3

myisamchk を使用する代わりに、REPAIR TABLEANALYZE TABLEOPTIMIZE TABLE、もしくは ALTER TABLE を使用することができます。これらのステートメントは、正しいフル テキスト パラメータ値を理解しているサーバによって実行されます。