sql >> Base de Datos >  >> RDS >> Mysql

¿Se utilizarán los índices si consulta un subconjunto de las columnas del índice?

La documentación de MySQL hace un buen trabajo al explicar cómo funcionan los índices de varias columnas aquí .

En general, el índice se puede usar para un where cláusula cuando algún número de columna en el más a la izquierda lado del índice tienen condiciones de igualdad. Tu where Las cláusulas usan las siguientes columnas:

  • c1, c2
  • c1, c2, c3, c4
  • c1, c2
  • c1, c2, c5

Cualquier índice que comience con las columnas c1 y c2 normalmente se usaría para estas consultas. MySQL puede aplicar otras condiciones al uso del índice, como la selectividad. Es decir, si c1 y c2 tienen valores constantes (por ejemplo), entonces usar un índice no beneficiará la consulta.

Para optimizar todas estas combinaciones, puedes crear dos índices:c1, c2, c3, c4 y c2, c1, c5 . La razón para intercambiar c1 y c2 en el segundo índice es para que pudiera manejar consultas donde la condición está en c2 pero no c1 , así como al revés.