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

Índice MySQL para MIN e MAX

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

O amor é
INDEX(a, b)

ambas as colunas, nessa ordem.

A consulta procura no índice por a = 12 , pega o primeiro (a,b) par para obter MIN(b) e pega o último par para obter MAX(b) .

A declaração sobre "substituir por uma constante" é confusa porque está se aprofundando demais nos detalhes de como primeiro descobre como executar a consulta (que por acaso obtém o mínimo e o máximo) e prossegue para executar o que resta de a consulta (nada é deixado).

De maneira mais geral, o índice ideal é geralmente um que começa com todos os WHERE colunas comparadas com constantes com = . Depois disso fica complexo, então deixe-me dar outra dica:

Um índice de "cobertura" é aquele que possui todas as colunas mencionadas no SELECT (a e b no meu exemplo).

Desculpe, eu não pareço ser mais claro do que o manual.