NOT IN ( SELECT ... ) được tối ưu hóa rất kém, đặc biệt là trong các phiên bản cũ hơn.
Thay đổi thành này:
SELECT abc.*
FROM abc
LEFT JOIN zyx ON zyx.abc_id = abc.id
WHERE zyx.abc_id IS NULL;
AND zyx.id = 12345 ;
Đối với zyx, có INDEX(id, abc_id) hoặc INDEX(abc_id, id)
Nếu zyx.id là PRIMARY KEY , truy vấn của bạn không có nhiều ý nghĩa - tại sao phải kiểm tra một hàng (12345)?