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)?