IT 이야기/DB

[DB 기술면접] 해시 조인(Hash Join)이란 무엇인가

하늘봉 2022. 9. 9. 12:00
반응형

정의

해시 조인은 작은 집합으로 해시 테이블을 생성하고

큰 집합을 읽으면서 해시 테이블을 탐색하는 조인 기법입니다.


해시 테이블을 생성하는 데 사용되는 집합을 Bulid Input이라 하고 
해시 테이블을 탐색하는 데 사용되는 집합을 Probe Input 이라고 합니다.

 

즉, 해시 조인은 두 단계로 진행됩니다.

 

작동 매커니즘

1. Build 단계 : 작은 쪽 테이블(Build Input)을 스캔해서 해시 테이블(해시 맵)을 생성한다.
2. Probe 단계 : 큰 쪽 테이블(Probe Input)을스캔해서 해시 테이블을 탐색하면서 조인한다.

 

예를 들어 배송업체 관리 테이블 (약 400건), 배송내역 테이블 (약 80,000건)을 해시 조인한다고 가정해보겠습니다.

 

1. Build 단계 : 우선 작은 쪽 테이블인 배송업체 관리 테이블(약 400건)을 스캔해서 해시 테이블을 생성

 

2. Probe 단계 : 그 다음 큰 쪽 테이블인 배송내역 테이블(약 80,000건)을 스캔해서 해시 테이블을 탐색하며 조인

 

 

 

해시 조인의 특징

1. 조인 칼럼의 인덱스 유무가 조인 속도에 영향을 미치지 않는다.

2. 해시 조인은 각 테이블을 독립적으로 엑세스 하므로 테이블별 검색조건에 따라 전체 일량이 좌우 된다.

3. 조인 조건의 연산자가 '=' 등치 조건이 반드시 필요

4. NL 조인과 Sort Merge 조인의 단점을 개선 (과도한 랜덤 엑세스의 부담과 정렬의 부하를 제거함)

5. 해시 테이블 생성과 탐색에 많은 리소스를 사용하므로 OLTP 환경에서는 주의가 필요

 

반응형