Документацията на 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 , както и обратното.