場合によります...
column1
だけにインデックスが作成される可能性はほとんどありません。 column1, column2
に複合インデックスが既にある場合に役立ちます . column1
以降 column1
のみを持つテーブルに対するクエリである先行インデックスです。 述語として、複合インデックスを使用できるようになります。インデックスのフル スキャンと column2
の存在を実行する必要があるクエリを頻繁に実行している場合 インデックスのサイズが大幅に増加します。column1
だけのインデックスが フル インデックス スキャンはより少ない I/O を実行する必要があるため、より効率的です。しかし、これは非常に珍しい状況です。
column2
だけのインデックス テーブルに対するクエリの一部が column2
だけで述語を指定している場合に役立つ可能性があります . column1
の明確な値が比較的少ない場合 、column2
のみを指定するクエリを満たすために、Oracle が複合インデックスを使用してインデックス スキップ スキャンを実行できる可能性があります。 述語として。ただし、スキップ スキャンはレンジ スキャンよりも効率が悪い可能性が高いため、column2
だけのインデックスが それらのクエリに役立ちます。 column1
に個別の値が多数ある場合 、スキップスキャンはさらに効率が悪く、インデックスは column2
だけになります より有益でしょう。もちろん、column2
を使用してテーブルをクエリしない場合は、 column1
に述語も指定せずに 、 column2
だけにインデックスは必要ありません .