-- 세미 조인 비활성화
SET SESSION optimizer_switch='semijoin=off';
-- 테스트 후, 반드시 기본값으로 되돌려두어야 한다.
SET optimizer_switch='default';
SELECT *
FROM employees e
WHERE e.emp_no IN (
SELECT de.emp_no FROM dept_emp de WHERE de.from_date='1995-01-01';
)
= (subquery)
와 IN (subquery)
형태의 쿼리<> (subquery)
와 NOT IN (subquery)
형태의 쿼리세미 조인 최적화의 상세한 내용은 다음장부터 정리한다.
firstmatch
옵티마이저 옵션으로 사용 여부를 결정할 수 있다.loosescan
옵티마이저 옵션으로 사용 여부를 결정할 수 있다.optimizer_switch
시스템 변수의 semijoin 옵티마이저 옵션은 firstmatch와 loosescan, materialization 옵티마이저 옵션을 한 번에 활성화하거나 비활성화할 때 사용한다.