logo

MySQL where in (서브쿼리) vs 조인 조회 성능 비교 (5.5 vs 5.6)

language-logoMySQL

• MySQL 5.5에서 5.6으로 업데이트되면서 서브쿼리의 성능이 크게 개선되었다. MySQL 5.5에서는 서브쿼리 최적화에 많은 문제가 있었으며, 특히 WHERE절의 IN 쿼리에 대해 동등 비교와 같이 처리되지 않았다.
• 테스트 결과, MySQL 5.5에서는 인덱스가 없는 테이블에서 서브쿼리를 사용할 경우 실행 계획이 'DEPENDENT SUBQUERY'로 나타나며, 이는 MySQL 5.5 옵티마이저가 최적화를 하면서 쿼리가 변환되어 실행되기 때문이다.
• MySQL 5.5 버전에서 서브쿼리와 인덱스가 없는 경우, 100만건과 1천건의 조회에 3분 이상이 소요되었으며, 서브 테이블에 인덱스가 있는 경우에는 1.8초로 개선되었다. 하지만 이 쿼리는 원래 0.x초 내로 끝났어야 하는 쿼리로, 아직 최적화가 된 형태는 아니다.
• MySQL 5.5에서는 항상 서브쿼리 대신에 Join을 사용하라고 권장하며, 이를 통해 쿼리 성능을 향상시킬 수 있다.

thumbnail
북마크
공유하기
신고하기
15분 분량
조회수 221
profile-image향로
2년 전
Copyright © 2025. Codenary All Rights Reserved.