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

Minha consulta MySql simples não usa índice


Eu acho que você tem poucas linhas na tabela 'comentários', é por isso que o MySQL está fazendo uma varredura completa da tabela em vez de usar o índice em sua primeira consulta. Está estimando que o custo de uma verificação completa da tabela pode ser menor do que primeiro corresponder ao índice e depois pesquisar as linhas.

Em sua segunda consulta está usando o índice porque é possível obter todas as colunas da consulta (a coluna 'id') diretamente do índice sem a necessidade de pesquisar as linhas da tabela após corresponder ao índice. Este é o significado das informações extras "Usando índice".

Tente se com um número significativo de linhas em 'comentários' o MySQL ainda usa uma varredura completa, acho que seria um comportamento estranho. Na verdade, testei exatamente o mesmo em um MySQL versão 5.1 e está sempre usando o 'índice' mesmo com poucas linhas.