NOT IN ( SELECT ... ) е много лошо оптимизиран, особено в по-старите версии.
Променете на това:
SELECT abc.*
FROM abc
LEFT JOIN zyx ON zyx.abc_id = abc.id
WHERE zyx.abc_id IS NULL;
AND zyx.id = 12345 ;
За zyx има или INDEX(id, abc_id) или INDEX(abc_id, id)
Ако zyx.id е PRIMARY KEY , вашата заявка няма особен смисъл – защо да тествате за един ред (12345)?