Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Os índices serão usados ​​se você consultar um subconjunto das colunas do índice?


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.