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