NOT IN ( SELECT ... )
er meget dårligt optimeret, især i ældre versioner.
Skift til dette:
SELECT abc.*
FROM abc
LEFT JOIN zyx ON zyx.abc_id = abc.id
WHERE zyx.abc_id IS NULL;
AND zyx.id = 12345 ;
For zyx skal du have enten INDEX(id, abc_id)
eller INDEX(abc_id, id)
Hvis zyx.id
er den PRIMARY KEY
, din forespørgsel giver ikke meget mening -- hvorfor teste for en enkelt række (12345)?