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

Tabelas MySQL muito pequenas ignoram índices?


NOT IN ( SELECT ... ) é muito mal otimizado, especialmente em versões mais antigas.

Mude para isso:
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, tenha INDEX(id, abc_id) ou INDEX(abc_id, id)

Se zyx.id é a PRIMARY KEY , sua consulta não faz muito sentido - por que testar uma única linha (12345)?