← 질문 목록
#207깊이 0
JOIN 연산의 성능을 결정하는 핵심 요소는 무엇인가?
인덱스 사용 여부와 조인 방식의 선택이다. 인덱스가 없으면 전체 테이블을 훑어야 하므로 비용이 급격히 증가한다.
| 기준 | Nested Loop | Hash Join |
|---|---|---|
| 적합한 데이터 | 소량/인덱스 있음 | 대량/인덱스 없음 |
| 처리 방식 | 중첩 반복 수행 | 해시 테이블 생성 |
Nested Loop 조인은 바깥쪽 테이블의 행마다 안쪽 테이블을 탐색한다. 안쪽 테이블의 조인 컬럼에 인덱스가 있으면 행마다 찾는 비용이 작다.
Hash Join은 두 테이블 중 작은 쪽으로 해시 맵을 먼저 만든다. 이후 큰 테이블을 읽으며 해시 맵에서 일치하는 값을 찾는다. 대량 데이터 처리에 유리하다.
정렬 상태에 따라 Merge Join이 선택되기도 한다. 옵티마이저는 통계 정보를 바탕으로 데이터 양과 인덱스 상태를 보고 가장 싼 비용의 방식을 결정한다.