Mysql
 sql >> Database >  >> RDS >> Mysql

Le tabelle MySQL molto piccole ignorano gli indici?

NOT IN ( SELECT ... ) è molto poco ottimizzato, specialmente nelle versioni precedenti.

Cambia in questo:

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

Per zyx, avere INDEX(id, abc_id) o INDEX(abc_id, id)

Se zyx.id è la PRIMARY KEY , la tua query non ha molto senso:perché testare una singola riga (12345)?