토픽 80 / 201·인덱스 및 쿼리 최적화
Nested Loop Join
Nested Loop Join
외부(Driving) 테이블의 각 행에 대해 내부(Driven) 테이블을 반복 탐색하여 조인 조건에 맞는 행을 찾는 방식
특징: 인덱스 활용 시 효율적, 소량 데이터에 적합, 부분 범위 처리 가능(첫 결과 빠름)
동작원리
시간복잡도
- •Full Scan: O(N × M) — 외부 N행 × 내부 M행 전체 스캔
- •Index Scan: O(N × logM) — 내부 테이블 인덱스 사용 시
구성요소: 외부(Driving) 테이블, 내부(Driven) 테이블, 인덱스
최적화 포인트
- •드라이빙 테이블은 결과 건수가 적은 테이블 선택
- •내부 테이블의 조인 컬럼에 인덱스 필수
- •인덱스 없으면 Full Table Scan → 성능 급락
적용사례: OLTP(소량 행 반환), 인덱스 존재 시, 부분 범위 처리(LIMIT/TOP)
비교: NL(소량/인덱스/부분범위) vs Hash(대용량/전체범위)
연관: 조인, 인덱스, 실행계획