Anda harus memahami di MySQL (dalam kasus InnoDB) hanya menggunakan awalan paling kiri dari indeks Anda. Jadi jika indeks ada di Bidang1 + Bidang2, kueri hanya dengan Bidang2 di WHERE tidak dapat menggunakan seluruh indeks.
Dan jika Field1 + Field2 + Field3
adalah indeks, kueri dengan hanya Field1 & Field3
di DI MANA hal yang sama akan terjadi.
Opsi 1
Anda harus membuat indeks terpisah untuk setiap skenario pencarian jika Anda ingin mengoptimalkan setiap pencarian. Namun, jika tabelnya besar, maka indeksnya juga akan menjadi sangat besar. Jika kueri penelusuran tersebut dibuat sangat sering, ini akan sangat berharga.
Opsi 2
Anda dapat menggunakan trik yang bagus jika penelusuran Anda memiliki selektivitas rendah (yaitu Gender) dengan meletakkan kolom selektivitas rendah paling kiri dan gunakan Gender IN(M, F)
untuk memasukkannya ke WHERE klausa bersama dengan kolom lainnya untuk menggunakan seluruh indeks.