NOT IN ( SELECT ... )
está muy mal optimizado, especialmente en versiones anteriores.
Cambia a esto:
SELECT abc.*
FROM abc
LEFT JOIN zyx ON zyx.abc_id = abc.id
WHERE zyx.abc_id IS NULL;
AND zyx.id = 12345 ;
Para zyx, tenga INDEX(id, abc_id)
o INDEX(abc_id, id)
Si zyx.id
es la PRIMARY KEY
, su consulta no tiene mucho sentido:¿por qué probar una sola fila (12345)?