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

Índice MySQL para MIN y MAX

SELECT MIN(b), MAX(b) FROM tbl WHERE a = 12;

ama

INDEX(a, b)

ambas columnas, en ese orden.

La consulta busca en el índice a = 12 , toma el primer (a,b) par para obtener MIN(b) y toma el último par para obtener MAX(b) .

La declaración sobre "reemplazar con una constante" es confusa porque profundiza demasiado en los detalles de cómo primero descubre cómo realizar la consulta (que obtiene el mínimo y el máximo), luego procede a ejecutar lo que queda de la consulta (no queda nada).

En términos más generales, el índice óptimo es normalmente uno que comienza con todos los WHERE columnas comparadas con constantes con = . Después de eso, se vuelve complejo, así que déjame darte otro consejo:

Un índice de "cobertura" es aquel que tiene todas las columnas mencionadas en el SELECT (a y b en mi ejemplo).

Lo siento, no parece ser más claro que el manual.