データベース テーブルに対して 2 つのクエリがあるとします。
クエリは、クエリで使用されるフィールドに関して定義されます。
Query1: f1、f2、および f3 に依存
クエリ 2: f1、f2、f3、および f4 に依存
SQL クエリ エンジン (この場合は mySQL) がインデックスの左端のフィールドから開始してインデックス ツリーを解析することをどこかで読んだことを覚えています。
それが正しければ、次のようにテーブルに 2 つのインデックスを定義する代わりに、次のように仮定します。
Index 1 (for Query1) : CREATE INDEX idx_1 {f1, f2, f3}
Index 2 (for Query2) : CREATE INDEX idx_2 {f1, f2, f3, f4}
両方のクエリで使用されるキーの結合を含む 1 つのインデックスを定義するだけです。
このインデックスを定義するだけです。
(for BOTH Query1) : CREATE INDEX the_idx {f1, f2, f3, f4}
2 つの質問があります。
私の仮定は正しいですか?つまり、前の 2 つのインデックスの代わりに 1 つのインデックス (the_idx) を定義できますか?
このインデックスの動作は PostgreSQL クエリ エンジンにも当てはまりますか?