EXISTS останавливается при первом найденном совпадении (short-circuit). IN с подзапросом часто материализует весь результат подзапроса. При большом подзапросе EXISTS обычно эффективнее. Кроме того, NOT IN с NULL в подзапросе даёт пустой результат из-за семантики NULL; NOT EXISTS ведёт себя предсказуемо.