Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


4.6.3.1 myisamchk の一般オプション

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

  • --help, -?

    ヘルプメッセージを表示して終了します。オプションは操作の種類によってグループ化されています。

  • --HELP, -H

    ヘルプメッセージを表示して終了します。オプションは単独のリストに提示されます。

  • --debug=debug_options, -# debug_options

    デバッグのログを書き込みます。一般的な debug_options 文字列は d:t:o,file_name です。デフォルトは d:t:o,/tmp/myisamchk.trace です。

  • --defaults-extra-file=file_name

    このオプションファイルは、グローバルオプションファイルのあとに読み取りますが、(UNIX では) ユーザーオプションファイルの前に読み取るようにしてください。ファイルが存在しないかアクセスできない場合、エラーが発生します。file_name は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。

  • --defaults-file=file_name

    指定されたオプションファイルのみ使用します。ファイルが存在しないかアクセスできない場合、エラーが発生します。file_name は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。

  • --defaults-group-suffix=str

    通常のオプショングループだけでなく、通常の名前に str のサフィクスが付いたグループも読み取ります。たとえば、myisamchk は通常 [myisamchk] グループを読み取ります。--defaults-group-suffix=_other オプションを指定した場合、myisamchk[myisamchk_other] グループも読み取ります。

  • --no-defaults

    オプションファイルを読み取りません。オプションファイルから不明のオプションを読み取ることが原因でプログラムの起動に失敗する場合、--no-defaults を使用して、オプションを読み取らないようにできます。

    例外として、.mylogin.cnf ファイルは、存在する場合はすべての場合に読み取られます。これにより、--no-defaults が使用された場合にも、コマンド行よりも安全な方法でパスワードを指定できます。(.mylogin.cnfmysql_config_editor ユーティリティーによって作成されます。セクション4.6.6「mysql_config_editor — MySQL 構成ユーティリティー」を参照してください)。

  • --print-defaults

    プログラム名と、オプションファイルから受け取るすべてのオプションを出力します。

  • --silent, -s

    サイレントモード。エラーが発生したときのみ出力を書き出します。-smyisamchk を非常にサイレントにするために 2 回 (-ss) 使用できます。

  • --verbose, -v

    冗長モード。プログラムの動作についてより多くの情報を出力します。これは -d-e とともに使用できます。さらに多くの出力を得るためには、-v を複数回 (-vv-vvv) 使用します。

  • --version, -V

    バージョン情報を表示して終了します。

  • --wait, -w

    テーブルがロックされている場合に、エラーで終了する代わりに、テーブルがロック解除されるまで待機してから続行します。外部ロックを無効にした状態で mysqld を実行している場合、テーブルをロックできるのはもう 1 つの 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 で確認できます。

sort_buffer_size はキーをソートすることでキーが修復される場合に使用されます。--recover を使用した場合はこれが通常です。MySQL 5.6.9 では、myisam_sort_buffer_sizesort_buffer_size の別名として使用できます。myisam_sort_buffer_size は、その名前が同様の意味を持つ myisam_sort_buffer_size サーバーシステム変数に対応するため、sort_buffer_size より推奨されます。sort_buffer_size は非推奨とみなすようにしてください。

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

  • --safe-recover を使用する。

  • キーのソートに必要な一時ファイルが、直接キーファイルを作成する場合と比較して倍以上の大きさとなる。これは CHARVARCHAR、または TEXT カラムに大きなキー値が与えられている場合によくあります。これは、ソート操作では処理中に完全なキー値を保存する必要があるからです。一時スペースに余裕があり、ソートによって修復することを myisamchk に強制できる場合、--sort-recover オプションを使用できます。

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

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

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

stats_method は、--analyze オプションを指定した場合に、インデックス統計の集計で NULL 値がどう扱われるかに影響します。myisam_stats_method システム変数のような働きをします。詳細は、セクション5.1.4「サーバーシステム変数」セクション8.3.7「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 を使用できます。これらのステートメントは、適切に使用される全文パラメータ値が認識されているサーバーで実行されます。


User Comments
Sign Up Login You must be logged in to post a comment.