マルチカラムインデックスの可否について
- 複数の列の組み合わせをインデックスのキーにすることはできますか?
- ある表に定義されている複数の列の組み合わせを、インデックスのキーに指定することができます。これをマルチカラムインデックスと呼びます。
マルチカラムインデックスは、定義する列の順序に意味があります。列aと列bを組み合わせて、(a,b)という順のマルチカラムインデックスを定義したとします。このインデックスを使って検索を行う場合、まず列aの値でデータを絞り込んでから、列bの値で絞り込んでいきます。そのため、(a,b)という組み合わせのマルチカラムインデックスを使って、検索条件に列bだけを指定した検索は行うことはできません。逆に、列aだけを検索条件に指定した検索はできます。
マルチカラムインデックスを定義しているとき、検索処理でこのインデックスが使われるかどうかについて、以下にいくつかの例を示します。3つの列a、b、cの組み合わせとして、(a,b,c)というマルチカラムインデックスを定義しているとします。
-
マルチカラムインデックスの先頭の列だけを使用する場合
検索条件:WHERE a = 10
この場合はインデックスが使用されます。
-
マルチカラムインデックスの先頭以外の列を使用する場合
検索条件:WHERE b = 10 AND c = 2
列の組み合わせの先頭である列aが検索条件に指定されていないため、この検索条件ではインデックスは使用されません。
-
マルチカラムインデックスの不連続の列を使用する場合
検索条件:WHERE a = 10 AND c = 2
マルチカラムインデックスの一部だけが使用されます。
「a=10」の条件に合致するデータを抽出する段階では、インデックスが使用されます。
「c=2」の条件の検索にはインデックスは使用されません。
これはマルチカラムインデックスのキーの組み合わせで列cより前に定義されている列bについての条件が、検索条件に指定されていないためです。 -
マルチカラムインデックスのすべてを順不同に使用する場合
検索条件:WHERE b = 10 AND c = 2 AND a = 5
この場合はインデックスが使用されます。
マルチカラムインデックスのキーの組み合わせの定義順番と、検索条件に記述する順番は異なっていますが、インデックスが使用されるかどうかとは無関係です。
-
製品・サービス区分 | Symfoware | ||||
---|---|---|---|---|---|
製品・サービス情報 |
|
||||
アンサー種別 | 技術サポート |