본문 바로가기

조인2

MySQL where in (서브쿼리) vs 조인 조회 성능 비교 (5.5 vs 5.6) MySQL 5.5에서 5.6으로 업데이트가 되면서 서브쿼리(Subquery) 성능 개선이 많이 이루어졌습니다. 이번 시간에는 MySQL 2개의 버전 (5.5, 5.6) 에서 서브쿼리를 통한 조회 (Select)와 Join에서의 조회간의 성능 차이를 비교해보겠습니다. MySQL의 정석과도 같은 Real MySQL 책이 MySQL 5.5 버전을 기준으로 하다보니 5.6 변경분에 대해서 별도로 포스팅하게 되었습니다. 0. 테스트 환경 테스트용 테이블은 2개를 만들었습니다. 메인 테이블 100만건 서브 테이블1 (인덱스 O) 1000건 서브 테이블2 (인덱스 X) 1000건 DDL 쿼리는 다음과 같습니다. 메인 테이블 -- 업데이트 대상 테이블 create table main_table ( id int not .. 2020. 8. 27.
패스트캠퍼스 SQL튜닝캠프 4일차 - 조인의 기본 원리와 활용 조인 알고리즘오라클은 아래의 3개 조인 알고리즘을 모두 지원하지만 MySQL에서는 NestedLoop조인만 지원합니다.1. Nested Loop 조인이름 그대로 중첩반복을 사용하는 조인 알고리즘입니다.(출처: SQL 레벨업)위 그림을 참고하여 Nested Loop 조인의 실행순서는 아래와 같습니다.Table A에서 row를 하나씩 반복해가며 스캔합니다. 이 테이블을 Driving Table 혹은 Outer Table이라 합니다. 반대로 Table B (반대편)는 Inner Table이라 합니다.Driving Table의 row 하나마다 내부 테이블의 레코드를 하나씩 스캔해서 Join 조건에 맞으면 리턴합니다.1~2를 Driving Table의 모든 row에 반복합니다.Nested Loop의 실행시간은 다.. 2017. 8. 25.