NOT IN ( SELECT ... )
est très mal optimisé, surtout dans les anciennes versions.
Remplacez-le par :
SELECT abc.*
FROM abc
LEFT JOIN zyx ON zyx.abc_id = abc.id
WHERE zyx.abc_id IS NULL;
AND zyx.id = 12345 ;
Pour zyx, ayez soit INDEX(id, abc_id)
ou INDEX(abc_id, id)
Si zyx.id
est la PRIMARY KEY
, votre requête n'a pas beaucoup de sens -- pourquoi tester une seule ligne (12345) ?