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.