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

Por que essa consulta está usando where em vez de index?


A saída de EXPLAIN às vezes pode ser enganosa.

Por exemplo, filesort não tem nada a ver com arquivos, using where não significa que você está usando um WHERE cláusula e using index pode aparecer nas tabelas sem um único índice definido.

Using where apenas significa que existe alguma cláusula restritiva na tabela (WHERE ou ON ), e nem todos os registros serão retornados. Observe que LIMIT não conta como uma cláusula restritiva (embora possa ser).

Using index significa que todas as informações são retornadas do índice, sem buscar os registros na tabela. Isso só é possível se todos os campos exigidos pela consulta estiverem cobertos pelo índice.

Como você está selecionando * , isto é impossível. Campos diferentes de category_id , board_id , display e order não são cobertos pelo índice e devem ser consultados.