myisamchk はテーブルチェックや修復以外のアクションを行う、以下のオプションをサポートしています。
キー値の分布を分析します。ジョインオプティマイザに、どのテーブルを結合し、どのインデックスを使用するかより効率的に選択させることで結合パフォーマンスを向上させます。To
キー分布の情報を取得するためには、myisamchk --description --verbose tbl_name
コマンドか SHOW INDEX FROM tbl_name
ステートメントを使用してください。
--block-search=offset
, -b offset
ある特定のオフセットのブロックが属する記録を見つけなさい。
テーブルの説明を含む情報をプリントします。
--set-auto-increment[=value]
, -A[value]
AUTO_INCREMENT
ナンバリングを強制して新しい行がある値で始まるようにします(あるいは、存在する行の AUTO_INCREMENT
値が大きい場合、さらに大きい値で始まるようにします。)もし 値
が特定されていない場合、新しい行の AUTO_INCREMENT
数字は現在テーブル内の最も高い値+1になります。
高い順にインデックストリーブロックをソートします。これによりシークが最適化され、インデックスを使用するテーブルスキャンのスピードが上がります。
特定のインデックスに基づいて行をソートします。これによりデータがさらにローカライズされ、このインデックスを使用する、レンジに基づくSELECT
やORDER BY
オペレーションのスピードが上がります。(初めてテーブルをソートするのにこのオプションを使用する場合、かなり遅い場合があります。)テーブルのインデックス数字を決定するには、myisamchkが見た同じ順序でテーブルのインデックスを表示するSHOW INDEX
を使用してください。インデックスは1から番号がふられます。
キーがパックされていない場合、(PACK_KEYS=0)
)同じ長さになります。よって、myisamchkが行を移動もしくはソートするとき、インデックスの行オフセットを上書きします。キーがパックされている場合、(PACK_KEYS=1
)myisamchkはまずキーブロックをアンパックし、それからインデックスを再作成、キーブロックをパックしなければいけません。(この場合、各インデックスのオフセットを更新するよりも、インデックスを再作成するほうが早いです。)