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

Por que um índice pode tornar uma consulta muito lenta?


Porque você ainda precisa ler todos os dados do arquivo index + data. Como você não está usando nenhum where condição - você sempre terá o plano de consulta, que acessa todos os dados, linha por linha e você não pode fazer nada com isso.

Se o desempenho for importante para esta consulta e for executado com frequência - sugiro armazenar em cache os resultados em alguma tabela temporária e atualizá-la de hora em hora (diariamente, etc).

Por que fica mais lento:porque no índice os dados já estão ordenados e quando o mysql calcula o custo da execução da consulta ele acha que será melhor usar os dados já ordenados, depois agrupá-los e depois calcular os agregados. Mas não é neste caso.