같은 결과를 내는 쿼리를 서브쿼리로 작성할 수도 있고 JOIN으로 작성할 수도 있는데, 성능 차이가 있나요?
특히 대용량 테이블에서 어떤 게 더 빠른지 궁금합니다.
EXPLAIN으로 실행 계획을 비교해봤는데 해석이 어렵습니다.
같은 결과를 내는 쿼리를 서브쿼리로 작성할 수도 있고 JOIN으로 작성할 수도 있는데, 성능 차이가 있나요?
특히 대용량 테이블에서 어떤 게 더 빠른지 궁금합니다.
EXPLAIN으로 실행 계획을 비교해봤는데 해석이 어렵습니다.
댓글 3
일반적으로 JOIN이 서브쿼리보다 빠릅니다. MySQL 옵티마이저가 JOIN을 더 잘 최적화하거든요. 특히 상관 서브쿼리(correlated subquery)는 행마다 실행되므로 매우 느릴 수 있습니다.
그렇군요! 상관 서브쿼리를 JOIN으로 변환하니 실행 시간이 10초에서 0.3초로 줄었습니다. 감사합니다!