Документацията на MySQL върши добра работа, за да обясни как работят индексите с няколко колони тук .
По принцип индексът може да се използва за where
клауза, когато някакъв брой колони в най-лявата страната на индекса имат условия за равенство. Вашето where
клаузите използват следните колони:
- c1, c2
- c1, c2, c3, c4
- c1, c2
- c1, c2, c5
Всеки индекс, започващ с колони c1
и c2
обикновено се използва за тези заявки. MySQL може да приложи други условия за използване на индекса, като селективност. Тоест, ако c1
и c2
имат постоянни стойности (например), тогава използването на индекс няма да е от полза за заявката.
За да оптимизирате всички тези комбинации, можете да създадете два индекса:c1, c2, c3, c4
и c2, c1, c5
. Причината за смяна на c1
и c2
във втория индекс е така, че можете обработват заявки, при които условието е на c2
но не и c1
, както и обратното.