このセクションで紹介されているオプションは myisamchk によって実行される全てのテーブル メンテナンス オペレーションに使用することができます。このセクション以降のセクションは特定のオペレーションに関するオプションのみを説明します。例えば、テーブルのチェックや修復。.
ヘルプ メッセージを表示し、閉じます。
--debug=
debug_options
,
-# debug_options
デバッグのログを書き込みます。debug_options
文字列は大抵
'd:t:o,
になります。
file_name
'
サイレントモード。エラーが発生したときのみアウトプットを書き込みます。-s
は myisamchk
を非常にサイレントにするため2回(-ss
)
使用することができます。
Verbose
モードプログラムの動作についてさらに情報をプリントアウトする。これは
-d
と -e
と共に使用することができます。さらに出力を得るため、-v
を複数回(-vv
、-vvv
)
使用してください
バージョン情報を表示し、閉じます。
テーブルがロックされている場合に、エラーとして消去するよりも、再開はテーブルがアンロックされるまで待ってください。外部ロックを無効の状態で mysqld を起動している場合、テーブルは 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
でテーブルをチェックするとき、もしくはテーブルに行ごとにキーを入力することでキーを修復する際に使用されます(普通にインサートする場合の様に)。キーバッファを通しての修復は以下の場合使用されます。
--safe-recover
を使用する場合。
キーのソートに必要なテンポラリ
ファイルは直接キーファイルを作成する際よりも、倍の大きさとなります。これは
CHAR
、VARCHAR
、もしくは
TEXT
カラムに大きなキー値が与えられている場合によくあります。これは、進行するにつれてソート
オペレーションは完全なキー値を記憶する必要があるからです。テンポラリ
スペースに余裕があり、myisamchk
を使用して強制的にソートすることで修復する場合、--sort-recover
オプションを使用することができます。
キーバッファを使用して修復するのはソートよりもはるかにディスクの空き容量に余裕を持たせることができますが、速度も落ちます。
修復スピードを早くする場合、key_buffer_size
と sort_buffer_size
変数を使用できるメモリの25%にセットしてください。同時に使用されることは無いので、双方の変数の値を大きくセットすることができます。
myisam_block_size
はインデックス
ブロックに使用されるサイズです。
stats_method
は NULL
値が、--analyze
オプションを与えられたときに、インデックス統計の集計の際にどう扱われるかに影響します。myisam_stats_method
システム変数のような働きをします。詳しくは、in
項4.2.3. 「システム変数」 と
項6.4.7. 「MyISAM
インデックス統計コレクション」に含まれる
myisam_stats_method
の詳細を参照してください。
ft_min_word_len
と
ft_max_word_len
は
FULLTEXT
インデックスの最低と最高文字長を指します。
ft_stopword_file
はストップワードファイルに名前をつけます。以下の状態でこれらをセットしなければいけません。
myisamchk を使用してテーブル
インデックスを改良するオペレーションを実行する場合、(例えば分析や修復)他に特定されない場合、FULLTEXT
インデックスはデフォルト フル テキスト
パラメータ値を、最低・最高文字長とストップワードファイルを使用して再構築されます。これはクエリの失敗につながることがあります。
この問題は、パラメータがサーバのみに理解されていることにより発生します。MyISAM
インデックスファイルには記憶されていません。サーバ内の最低・最高文字長もしくはストップワードファイルを改良した上で、問題を回避するには、ft_min_word_len
,
ft_max_word_len
とft_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
TABLE
、ANALYZE
TABLE
、OPTIMIZE
TABLE
、もしくは ALTER TABLE
を使用することができます。これらのステートメントは、正しいフル
テキスト
パラメータ値を理解しているサーバによって実行されます。