개발자 랩실/데이터베이스
[SQL] 조인 방식
sina.dev
2022. 3. 1. 12:56
728x90
조인 방식
- NESTED LOOP JOIN (중첩반복)
- SORT MERGE JOIN (정렬병합)
- HASH JOIN (해쉬매치)
1. Nested Loop Join (중첩 반복)
- 바깥 테이블의 처리 범위를 하나 씩 접근하면서 추출된 값으로 테이블을 조인하는 방식입니다.
특징
- 순차적으로 처리
- 순차적으로 돌기 때문에 안쪽 테이블에 인덱스가 필요
- 메모리 사용량이 가장 적음
- 두 테이블의 랜덤 I/O가 높게 나옴
2. Sort Merge Join (정렬병합)
- 양쪽 테이블의 처리 범위를 각자 접근하여 정렬한 결과를 차례로 스캔 -> 연결고리 조건으로 병합하는 방식이다. 경우에 따라 Loop Join보다 훨씬 빠를 수도 있고, 랜덤 액세스가 줄어들어 시스템 부하를 감소 시킵니다.
특징
- 동시 처리
- 인덱스 필요
- 정렬에 따라 메모리 사용량이 증가
3. Hash Join (해쉬 조인)
- 조인할 테이블에 대해서 해시 버킷을 생성, 순서대로 결과가 출력됩니다.
특징
- 인덱스 필요없음
- 대용량 테이블에 유리
- 정렬하지 않은 상태로 출력
- 메모리 사용