myisamchk はテーブルチェックおよび修復以外のアクションのために、次のオプションをサポートします。
-
キー値の分布を分析します。 これは、結合オプティマイザが、テーブルを結合する順番と、それが使用するインデックスをより適切に選択できるようにすることで、結合パフォーマンスを向上させます。 キー分布に関する情報を取得するには、myisamchk --description --verbose
tbl_name
コマンドまたはSHOW INDEX FROM
ステートメントを使用します。tbl_name
-
--block-search=
,offset
-b
offset
指定されたオフセットのブロックが属するレコードを検索します。
-
テーブルの説明情報を出力します。
--verbose
オプションを一回または二回使用すると、追加情報が生成されます。 セクション4.6.4.5「myisamchk によるテーブル情報の取得」を参照してください。 -
--set-auto-increment[=
,value
]-A[
value
]新しい行に対する
AUTO_INCREMENT
の番号付けを、指定した値 (または、AUTO_INCREMENT
値がこの値と同じであるレコードが存在する場合は、それより大きい値) で開始するように強制します。value
が指定されていない場合は、新しいレコードのAUTO_INCREMENT
の数字は現在テーブル内にあるもっとも大きい値 +1 で開始します。 -
インデックスツリーブロックを降順でソートします。 これはシークを最適化し、インデックスを使用するテーブルスキャンを高速化します。
-
特定のインデックスに基づいてレコードをソートします。 これにより、データが大幅に局所に集中化されるため、このインデックスを使用する、範囲に基づいた
SELECT
またはORDER BY
操作が高速化する可能性があります。 (テーブルのソートにはじめてこのオプションを使用する場合、かなり遅い場合があります。) テーブルのインデックス番号を決定するには、myisamchk が認識するのと同じ順序でテーブルのインデックスを表示するSHOW INDEX
を使用してください。 インデックスの番号は 1 から始まります。キーがパックされていない場合 (
PACK_KEYS=0
)、長さが同じであるため、myisamchk がレコードをソートして移動する際、インデックスのレコードオフセットを上書きするだけです。 キーがパックされている場合 (PACK_KEYS=1
)、myisamchk はまずキーブロックをアンパックし、次にインデックスを再作成してキーブロックをパックする必要があります。 (この場合、各インデックスのオフセットを更新するよりも、インデックスを再作成する方が早くなります。)