sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué esta consulta usa where en lugar de index?

La salida de EXPLAIN a veces puede ser engañoso.

Por ejemplo, filesort no tiene nada que ver con archivos, using where no significa que esté usando un WHERE cláusula, y using index puede aparecer en las tablas sin un solo índice definido.

Using where solo significa que hay alguna cláusula restrictiva en la tabla (WHERE o ON ), y no se devolverán todos los registros. Tenga en cuenta que LIMIT no cuenta como una cláusula restrictiva (aunque puede serlo).

Using index significa que toda la información se devuelve desde el índice, sin buscar los registros en la tabla. Esto solo es posible si todos los campos requeridos por la consulta están cubiertos por el índice.

Dado que está seleccionando * , esto es imposible. Campos que no sean category_id , board_id , display y order no están cubiertos por el índice y deben buscarse.