← 질문 목록
#228깊이 0

조인으로 인해 성능 저하가 발생하는 원인은 무엇인가?

데이터베이스심화인덱스·질의

조인 결과의 크기는 조인 개수가 아니라 키가 얼마나 겹치느냐로 정해진다. 겹침이 많으면 중간 결과가 부풀고 정렬과 병합이 따라 는다.

기준Nested Loop JoinHash JoinMerge Join
처리 방식이중 루프 순회해시 테이블 생성정렬 후 병합
적합한 데이터소량 데이터대량 데이터정렬된 데이터
시간 복잡도O(N*M)O(N+M)O(N log N + M log M)

Nested Loop Join은 외부 테이블의 모든 행을 하나씩 읽어 내부 테이블에서 조건에 맞는 행을 찾는다. 인덱스가 없으면 전체 테이블 스캔이 발생해 성능이 급격히 떨어진다.

Hash Join은 작은 테이블을 메모리에 해시 테이블로 올린 뒤 큰 테이블을 스캔하며 매칭되는 값을 찾는다. 메모리 부족 시 디스크 I/O가 발생해 느려진다.

Merge Join은 양쪽 테이블을 조인 키로 정렬한 뒤 순차적으로 읽으며 병합한다. 이미 정렬되어 있거나 범위 조인을 할 때 Merge Join이 유리하다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

조인으로 인해 성능 저하가 발생하는 원인은 무엇인가?