SQL에서 EXISTS와 IN 연산자의 성능 차이에 대한 설명으로 올바른 것은?

어려움 Stack Overflow
보기 및 정답
A 서브쿼리 결과가 크면 EXISTS가, 서브쿼리 결과가 작으면 IN이 일반적으로 더 효율적이다
B EXISTS는 언제나 항상 전체 테이블 스캔을 수행하므로 IN 연산자보다 처리 속도가 훨씬 느리다
C IN 연산자는 내부적으로 해시 조인을 사용하므로 어떤 경우에도 EXISTS보다 빠르다
D 두 연산자는 동일한 실행 계획을 생성하므로 성능 차이가 전혀 발생하지 않는다

해설

EXISTS는 서브쿼리에서 일치하는 행을 하나만 찾으면 즉시 멈추므로(단락 평가), 서브쿼리 결과가 클 때 유리합니다. IN은 서브쿼리 결과 전체를 가져와 비교하므로 결과가 작을 때 효율적입니다. 또한 EXISTS는 NULL 값 처리에서 IN보다 예측 가능한 결과를 줍니다.

코딩, 제대로 배우고 싶다면?

개념 확인은 퀴즈로, 실력은 실전 프로젝트로.
투더제이 코딩클래스에서 시작하세요.

정규반 살펴보기
START THE LOOP · CHOOSE

시장과 사람의 답을 봤다면,
다음 결과물의 구조를 고릅니다.

한 번의 결과에 기대지 않고 다시 만들 수 있도록, 문제 발견부터 제작·배포·수익화까지 이어지는 전체 흐름을 익혀보세요.

TTJ CLASS에서 다음 구조 고르기
처리 중...