Dokumentace MySQL dobře vysvětluje, jak fungují vícesloupcové indexy zde .
Obecně lze index použít pro where
klauzule při určitém počtu sloupců zcela vlevo strany indexu mají podmínky rovnosti. Vaše where
klauzule používají následující sloupce:
- c1, c2
- c1, c2, c3, c4
- c1, c2
- c1, c2, c5
Libovolný index začínající sloupci c1
a c2
by se normálně používal pro tyto dotazy. MySQL může použít další podmínky pro použití indexu, jako je selektivita. Tedy pokud c1
a c2
mít konstantní hodnoty (například), pak použití indexu nebude pro dotaz přínosem.
Chcete-li optimalizovat všechny tyto kombinace, můžete vytvořit dva indexy:c1, c2, c3, c4
a c2, c1, c5
. Důvod pro výměnu c1
a c2
ve druhém indexu je, abyste mohli zpracovávat dotazy, kde je podmínka na c2
ale ne c1
, stejně jako naopak.