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

¿Qué columna poner primero en el índice? ¿Cardinalidad más alta o más baja?

Las búsquedas de índice compuesto de MySQL deben realizarse en el orden en que se definen las columnas dentro del índice. Dado que desea que MySQL pueda discriminar entre registros realizando la menor cantidad de comparaciones posible, en igualdad de condiciones, se beneficiará más de un índice compuesto en el que las columnas se ordenan de mayor a menor cardinalidad.

Es decir, suponiendo que las comparaciones finalmente se deben realizar con la columna de cardinalidad más alta para discriminar registros, ¿por qué forzar que las comparaciones se realicen primero con la columna de cardinalidad más baja cuando, en última instancia, eso puede ser innecesario?