A documentação do MySQL faz um bom trabalho ao explicar como os índices de várias colunas funcionam aqui .
Em geral, o índice pode ser usado para um
where
cláusula quando algum número de coluna na mais à esquerda lado do índice têm condições de igualdade. Seu where
cláusulas usam as seguintes colunas:- c1, c2
- c1, c2, c3, c4
- c1, c2
- c1, c2, c5
Qualquer índice começando com colunas
c1
e c2
normalmente seria usado para essas consultas. O MySQL pode aplicar outras condições ao uso do índice, como seletividade. Ou seja, se c1
e c2
tem valores constantes (por exemplo), usar um índice não beneficiará a consulta. Para otimizar todas essas combinações, você pode criar dois índices:
c1, c2, c3, c4
e c2, c1, c5
. O motivo da troca de c1
e c2
no segundo índice é para que você poderia lidar com consultas em que a condição está em c2
mas não c1
, bem como o inverso.