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

¿Las tablas MySQL muy pequeñas ignoran los índices?

NOT IN ( SELECT ... ) está muy mal optimizado, especialmente en versiones anteriores.

Cambia a esto:

SELECT  abc.*
    FROM  abc
    LEFT JOIN  zyx  ON zyx.abc_id = abc.id
    WHERE  zyx.abc_id IS NULL;
AND  zyx.id = 12345 ;

Para zyx, tenga INDEX(id, abc_id) o INDEX(abc_id, id)

Si zyx.id es la PRIMARY KEY , su consulta no tiene mucho sentido:¿por qué probar una sola fila (12345)?