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

MySQL y conjunto anidado:ÚNETE lento (sin usar índice)

Ah, se me acaba de ocurrir.

Dado que está solicitando todo lo que hay en la tabla, mysql decide usar un escaneo completo de la tabla en su lugar, ya que lo considera más eficiente.

Para obtener un uso de clave, agregue algunos filtros para restringir la búsqueda de cada fila en todas las tablas de todos modos.

Actualizando respuesta:

Tu segunda consulta no tiene sentido. Te queda unirte a lca pero tienes un filtro en él, esto niega la unión izquierda por sí mismo. También está buscando datos en el último paso de la consulta, lo que significa que tendrá que revisar todo lt, lc y lca para encontrar sus datos. Además, no tiene un índice con la columna más a la izquierda 'tipo' en las ubicaciones, por lo que aún necesita un escaneo completo de la tabla para encontrar sus datos.

Si tuviera algunos datos de muestra y un ejemplo de lo que está tratando de lograr, tal vez sería más fácil ayudar.