2010년 7월 7일 수요일

[MySQL 쿼리 및 인덱스의 이해]조인(Join)의 종류와 수행속도

Nested Loop

 - 순차적 처리(첫번째 테이블 처리후 두번째 테이블 처리)
 - 종속적(먼저 처리되는 테이블의 처리범위에 따라 처리량 결정)
 - 랜덤(Random) 엑세스 위주
 - 연결고리 상태에 따라 영향이 큼
 - 좁은 범위에 처리에 적합

 

 

Sort Merge
 - 두개의 테이블을 따로 처리후 정렬된 결과를 가지고 Join처리
 - 전체 범위 처리에 유리
 - 연속적인 엑세스 위주
 - MySQL에서는 지원안함

 

 

조인의 수행속도 결정 요소(Driving)
 - 테이블A(1만개) > 테이블B(1천개) > 테이블C(2개) : 최소 10,000회 이상 엑세스
 - 테이블C(2개) > 테이블B(1천개) > 테이블A(1만개) : 최대 6회 이하 엑세스
 - 옵션으로 사용자가 지정가능
 


조인의 수행속도 결정 요소(Join순서)
 - 조인된 결과의 수가 다음 연결에 대한 일량에 영향을 미침

조인의 수행속도 결정 요소(Index)
 - 연결되는 컬럼의 양쪽에 인덱스가 있으면 성능이 높다

댓글 없음:

댓글 쓰기