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