MySQL-dokumentation gør et godt stykke arbejde med at forklare, hvordan indekser med flere kolonner fungerer her .
Generelt kan indekset bruges til en where
klausul, når et antal kolonner længst til venstre side af indekset har ligestillingsbetingelser. Din where
klausuler bruger følgende kolonner:
- c1, c2
- c1, c2, c3, c4
- c1, c2
- c1, c2, c5
Ethvert indeks, der starter med kolonnerne c1
og c2
vil normalt blive brugt til disse forespørgsler. MySQL kan anvende andre betingelser for at bruge indekset, såsom selektivitet. Det vil sige, hvis c1
og c2
har konstante værdier (for eksempel), så vil brug af et indeks ikke gavne forespørgslen.
For at optimere alle disse kombinationer kan du oprette to indekser:c1, c2, c3, c4
og c2, c1, c5
. Årsagen til at bytte c1
og c2
i det andet indeks er så du kunne håndtere forespørgsler, hvor betingelsen er på c2
men ikke c1
, såvel som det omvendte.