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