以下のオプションは、myisamchk
を
-r
または -o
で起動した場合に使用できます。
-B または --backup
.MYD
ファイルのバックアップを
filename-time.BAK
として作成する。
--correct-checksum
テーブルのチェックサム情報を修正する。
-D # または --data-file-length=#
データファイルの最大長(データファイルが 'full' で再生成されるとき)。
-e または --extend-check
データファイルから可能なすべてのレコードのリカバリを試みる。 通常、このオプションではガーベジレコードも多く見つかる。他に手がないとき以外は、このオプションは使用しないようにする。
-f または --force
停止しないで、古いテンポラリファイル(table_name.TMD
)を上書きする。
-k # または --keys-used=#
ISAM
を使用している場合、ISAM
ストレージエンジンが最初の
#
インデックスだけを更新するように指定する。MyISAM
を使用している場合は、各バイナリビットが
1
つのキーに対応しているので、どのキーを使用するかはビット計算をして指定する。
このオプションを使用して、挿入を高速化できる。無効化されたインデックスを再び有効にするには、myisamchk
-r
を使用する。
-l または --no-symlinks
シンボリックリンクを使用しない。通常、myisamchk
はシンボリックリンクが指すテーブルを修復する。このオプションは
MySQL 4.0 にはない。MySQL 4.0
では修復中にシンボリックリンクが削除されないためである。
-p または --parallel-recover
-r
および -n
と同じテクニックを使用するが、すべてのキーを複数のスレッドで並列処理する。
このオプションは MySQL 4.0.2 で導入。
これは、アルファコードである。使用にはリスクが伴う。
-r または --recover
ほとんどのエラーを修復できる。ただし、ユニークキーが一意でないエラーの場合には対応できない(ISAM
テーブルまたは MyISAM
テーブルでは非常に珍しいエラーである)。
テーブルをリカバリする場合は、まずこのオプションを試す。-r
ではテーブルをリカバリできないと
myisamchk
により報告された場合のみ、-o
を実行する。注意:
めったにないことではあるが
-r
が失敗した場合でも、データファイルは損傷を受けない。
メモリが豊富にある場合は、sort_buffer_size
のサイズを大きくすべきである。
-o または --safe-recover
古いリカバリ方式を使用する(すべてのレコードを順番どおりに読み取り、検出されたレコードに基づいてすべてのインデックスツリーを更新する)。これは
-r
よりもかなり遅いが、-r
で処理できない場合にも対応する。このリカバリ方式は、-r
よりもディスク容量の使用が少なくて済む。通常は最初に
-r
で修復を試みて、それに失敗した場合のみ
-o
を使用する。
メモリが豊富にある場合は、key_buffer_size
のサイズを大きくすべきである。
-n または --sort-recover
テンポラリファイルが非常に大きい場合でも、キー解決のために
myisamchk
にソートを強制する。
--character-sets-dir=...
キャラクタセットが格納されているディレクトリ。
--set-character-set=name
インデックスによって使用されるキャラクタセットを変更する。
-t または --tmpdir=path
テンポラリファイルを保存するパス。これを設定しない場合、myisamchk
はこれに環境変数 TMPDIR
を使用する。 MySQL 4.1
以降、tmpdir
で、複数のパスをコロン :
で区切って設定できるようになっている(Windows
ではセミコロン
;
)。これは、ラウンドロビン方式で使用される。
-q または --quick
データファイルを修正しないことにより、修復を速く行う。-q
を 2
回指定すると、重複キーの場合に、myisamchk
にオリジナルのデータファイルの修正を強制する。
-u または --unpack
myisampack でパックされたファイルをアンパックする。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.