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

Índice composto do MySQL não está sendo usado


Resposta curta:você poderia usar o índice de forma mais eficaz aqui se sua chave fosse (accountcode, calldate) em vez de (calldate, accountcode).

A melhor maneira de entender o problema é pensar nas chaves de várias colunas como sendo uma concatenação das diferentes colunas. Por exemplo, se a coluna 1 tivesse valores 'A,B,C,D' e a coluna 2 'W,X,Y,Z' você construiria um índice em 'A-W, B-X, C-Y, D-Z' etc. e colocaria todos desses em uma árvore B.

Para fazer uma consulta de intervalo, você encontra o primeiro sucessor do limite inferior do intervalo e itera até exceder o intervalo superior. Isso significa que você só pode usar efetivamente o índice para fazer uma consulta de intervalo em um sufixo da chave.