MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

4.6.4.1 myisamchk の一般オプション

このセクションで紹介されているオプションは myisamchk によって実行されるすべてのテーブルメンテナンス操作に使用できます。 このセクション以降のセクションは、テーブルのチェックまたは修復などの特定の操作のみに関するオプションを説明します。

--var_name=value 構文を使用すれば、次の変数も設定できます。

変数 デフォルト値
decode_bits 9
ft_max_word_len バージョンに依存
ft_min_word_len 4
ft_stopword_file 組み込みのリスト
key_buffer_size 523264
myisam_block_size 1024
myisam_sort_key_blocks 16
read_buffer_size 262136
sort_buffer_size 2097144
sort_key_blocks 16
stats_method nulls_unequal
write_buffer_size 262136

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

myisam_sort_buffer_size は、キーをソートしてキーを修復するときに使用されます。これは、--recover を使用する場合の通常のケースです。sort_buffer_size は、myisam_sort_buffer_size の非推奨シノニムです。

key_buffer_size--extend-check でテーブルをチェックするとき、またはテーブルに (通常の挿入を実行する場合のように) 1 行ずつキーを入力することでキーを修復する際に使用されます。 キーバッファーを通しての修復は次の場合に使用されます。

キーバッファーを使用する修復はソートを使用するよりもはるかにディスクの使用量が少ないですが、速度も落ちます。

より高速に修復を行いたい場合は、key_buffer_size 変数および myisam_sort_buffer_size 変数を、使用可能なメモリーの約 25% に設定します。 両方の変数が同時に使用されることはないので、両方の変数に大きい値を設定できます。

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

stats_method は、--analyze オプションを指定した場合に、インデックス統計の集計で NULL 値がどう扱われるかに影響します。 myisam_stats_method システム変数のような働きをします。 詳細は、セクション5.1.8「サーバーシステム変数」セクション8.3.8「InnoDB および MyISAM インデックス統計コレクション」に含まれる myisam_stats_method の説明を参照してください。

ft_min_word_len および ft_max_word_len は、MyISAM テーブルの FULLTEXT インデックスの語長を示します。ft_stopword_file はストップワードファイルを指名します。 次の状況ではこれらをセットする必要があります。

myisamchk を使用してテーブルインデックスを変更する操作を実行する場合 (たとえば修復や分析)、特に指定しなければ、FULLTEXT インデックスは、最小および最大の語長とストップワードファイルにデフォルトの全文パラメータ値を使用して再構築されます。 これにより、クエリーに失敗する可能性があります。

この問題は、これらのパラメータがサーバーでのみ認識されていることが原因で発生します。 MyISAM インデックスファイルには格納されていません。 サーバー内の最小および最大の語長またはストップワードファイルを変更した場合に問題を回避するには、mysqld で使用するのと同じ ft_min_word_lenft_max_word_lenft_stopword_file の値を 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 を使用できます。 これらのステートメントは、適切に使用される全文パラメータ値が認識されているサーバーで実行されます。