このアクセスアルゴリズムが使用できるのは、WHERE節が異なるキーの複数のレンジ条件に変換、ANDで結合され、各コンディションは以下の1つ:
このフォームでは、インデックスパーツはN個あります(つまり、全てのインデックスパーツがカバーされています。)
key_part1=const1ANDkey_part2=const2... ANDkey_partN=constN
InnoDBテーブルのプライマリキーをカバーするレンジ条件。
例:
SELECT * FROMinnodb_tableWHEREprimary_key< 10 ANDkey_col1=20; SELECT * FROMtbl_nameWHERE (key1_part1=1 ANDkey1_part2=2) ANDkey2=2;
インデックス共通集合アルゴリズムは全ての使用されたインデックスの同時スキャンを実行し、結合インデックススキャンから受信した行シーケンスの共通集合を生成します。
クエリで使用される全てのカラムが使用済みインデックスでカバーされている場合、完全なテーブル行は取得されません。(EXPLAIN
出力はExtra
フィールド内のUsing
indexを含んでいます)。そのようなクエリの例です:
SELECT COUNT(*) FROM t1 WHERE key1=1 AND key2=1;
クエリ内で使用されたカラムを使用されたインデックスがカバーしない場合、完全な行が取得されるのは全てのキーのレンジ条件が満たされたときのみです。
結合条件のうち1つがInnoDBテーブルのプライマリキー上の条件である場合、行取得には使用されず、他の条件を使用して取得した行にフィルターをかけるのに使用されます。
