sina.dev 2022. 3. 1. 12:56
728x90

조인 방식

  1. NESTED LOOP JOIN (중첩반복)
  2. SORT MERGE JOIN (정렬병합)
  3. HASH JOIN (해쉬매치)

 

1. Nested Loop Join (중첩 반복)

  • 바깥 테이블의 처리 범위를 하나 씩 접근하면서 추출된 값으로 테이블을 조인하는 방식입니다.

 

특징

  1. 순차적으로 처리
  2. 순차적으로 돌기 때문에 안쪽 테이블에 인덱스가 필요
  3. 메모리 사용량이 가장 적음
  4. 두 테이블의 랜덤 I/O가 높게 나옴

 

2. Sort Merge Join (정렬병합)

  • 양쪽 테이블의 처리 범위를 각자 접근하여 정렬한 결과를 차례로 스캔 -> 연결고리 조건으로 병합하는 방식이다. 경우에 따라 Loop Join보다 훨씬 빠를 수도 있고, 랜덤 액세스가 줄어들어 시스템 부하를 감소 시킵니다.

 

특징

  1. 동시 처리
  2. 인덱스 필요
  3. 정렬에 따라 메모리 사용량이 증가

 

3. Hash Join (해쉬 조인)

  • 조인할 테이블에 대해서 해시 버킷을 생성, 순서대로 결과가 출력됩니다.

 

특징

  1. 인덱스 필요없음
  2. 대용량 테이블에 유리
  3. 정렬하지 않은 상태로 출력
  4. 메모리 사용