MySQL-documentatie legt goed uit hoe indexen met meerdere kolommen werken hier .
Over het algemeen kan de index worden gebruikt voor een where
clausule wanneer een aantal kolommen op de meest linkse kant van de index hebben gelijkheidsvoorwaarden. Je where
clausules gebruiken de volgende kolommen:
- c1, c2
- c1, c2, c3, c4
- c1, c2
- c1, c2, c5
Elke index die begint met kolommen c1
en c2
zou normaal gesproken worden gebruikt voor deze vragen. MySQL kan andere voorwaarden stellen aan het gebruik van de index, zoals selectiviteit. Dat wil zeggen, als c1
en c2
constante waarden hebben (bijvoorbeeld) dan zal het gebruik van een index de zoekopdracht niet ten goede komen.
Om al deze combinaties te optimaliseren, kunt u twee indexen maken:c1, c2, c3, c4
en c2, c1, c5
. De reden voor het omwisselen van c1
en c2
in de tweede index is zodat je zou query's afhandelen waarbij de voorwaarde op c2
staat maar niet c1
, evenals het omgekeerde.