Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ignorieren sehr kleine MySQL-Tabellen Indizes?

NOT IN ( SELECT ... ) ist sehr schlecht optimiert, besonders in älteren Versionen.

Ändern Sie dies hier:

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

Verwenden Sie für zyx entweder INDEX(id, abc_id) oder INDEX(abc_id, id)

Wenn zyx.id ist der PRIMARY KEY , macht Ihre Abfrage nicht viel Sinn – warum auf eine einzelne Zeile testen (12345)?