MySQL(InnoDBの場合)では、インデックスの左端のプレフィックスのみが使用されることを理解する必要があります。したがって、インデックスがField1 + Field2にある場合、 WHEREのField2のみでクエリを実行します。 インデックス全体を利用することはできません。
そして、Field1 + Field2 + Field3
の場合 はインデックスであり、Field1 & Field3
のみを含むクエリです。 場所 同じことが起こります。
オプション1
各検索を最適化する場合は、検索シナリオごとに個別のインデックスを作成する必要があります。ただし、テーブルが大きい場合、インデックスも非常に大きくなります。 これらの検索クエリが頻繁に行われる場合、これは価値があります。
オプション2
検索の選択性が低い場合は、気の利いたトリックを使用できます。 (つまり、性別)選択性の低い列を一番左に配置し、Gender IN(M, F)
を使用します 場所に含める インデックス全体を利用するために、他の列と一緒に句を使用します。