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.