Post

SQL - 서브쿼리와 조인의 차이점

SQL - 서브쿼리와 조인의 차이점

성능

JOIN

  • 서브쿼리보다 성능 상 더 좋거나 동일한 경우가 많음.
  • 옵티마이저가 여러 테이블 간의 관계를 분석해서 최적의 실행 계획을 세울 수 있음.
  • 인덱스 활용, 조인 순서 최적화, 병렬 처리 등이 가능하기 때문에 대용량 데이터일수록 유리함.

서브쿼리

  • 서브쿼리는 단계적으로 실행됨.
    • 내부 쿼리 결과를 완성해야 외부 쿼리가 실행되기 때문에 실행 순서상 병목이 생길 수 있음.
  • 중간 결과를 메모리에 저장했다가 메인쿼리에서 다시 읽는 구조라서, 행 수가 많을수록 성능 저하가 발생함.
    • 상관 서브쿼리는 메인쿼리의 행마다 반복 실행되므로 성능에 더 불리함.

가독성

JOIN

  • 여러 테이블의 관계를 한 번에 보여주기 때문에, 데이터 구조를 명확히 파악할 수 있음.
  • 복잡한 조인 관계를 시각적으로 한눈에 파악하기 쉬움.

서브쿼리

  • 논리적 단계가 구분되어 있기 때문에 복잡한 로직을 쉽게 이해할 수 있도록 해줌.
  • 복잡한 로직이나 통계 계산에서는 가독성이 오히려 더 좋을 수 있음.
This post is licensed under CC BY 4.0 by the author.