Consulte el siguiente enlace para obtener más detalles
https://dev.mysql.com/doc /refman/8.0/en/table-scan-evitación.html
la causa del escaneo completo de la tabla está debajo
-
La tabla es tan pequeña que es más rápido realizar un escaneo de la tabla que molestarse con una búsqueda clave. Esto es común para tablas con menos de 10 filas y una longitud de fila corta.
-
No hay restricciones utilizables en la cláusula ON o WHERE para columnas indexadas.
-
Está comparando columnas indexadas con valores constantes y MySQL ha calculado (basado en el árbol de índices) que las constantes cubren una parte demasiado grande de la tabla y que un escaneo de la tabla sería más rápido
-
Está utilizando una clave con baja cardinalidad (muchas filas coinciden con el valor de la clave) a través de otra columna. En este caso, MySQL asume que al usar la clave probablemente hará muchas búsquedas clave y que un escaneo de la tabla sería más rápido.
para evitar el escaneo completo de la tabla, use lo siguiente:
-
Use ANALYZE TABLE tbl_name para actualizar las distribuciones clave para la tabla escaneada.
-
Use FORCE INDEX para la tabla escaneada para decirle a MySQL que los escaneos de tablas son muy costosos en comparación con el uso del índice dado:
p.ej. SELECCIONE * DESDE t1, t2 ÍNDICE DE FUERZA (índice_para_columna) DONDE t1.col_name=t2.col_name;