🙇‍♀️Merge 조인

Merge(병합) 조인 = Sort Merge(정렬 병합) 조인

🪐

1단계 : Sort (이미 정렬되어 있으면 스킵) O(N * Log(N))

One-To-Many (players는 중복이 없다) 2단계 : Merge OUTER [0, 1, 3, 4, 9] -> N INNER [0, 0, 2, 5, 9] -> M O(N + M)

Many-To-Many (players는 중복이 있다) OUTER [0, 0, 0, 0, 0] -> N INNER [0, 0, 0, 0, 0] -> M O(N * M)

ONE-TO-MANY가 효율이 좋다

MANY-TO-MANY도 사용하긴 한다

스크린샷(8)

🪐결론

  • ONE-TO-MANY (OUTER가 UNIQUE해야 함 => PK, UNIQUE)
  • MERGE 조인도 조건이 붙는다
  • 일일히 RANDOM ACCESS -> CLUSTERED SCAN 후 정렬

Merge -> Sort Merge 조인

  1. 양쪽 집합을 Sort(정렬)하고 Merge(병합)한다
    • 이미 정렬된 상태라면 Sort는 생략 (특히, Clustered로 물리적 정렬된 상태라면 Best)
    • 정렬할 데이터가 너무 많으면 GG -> Hash
  2. Random Access위주로 수행되진 않는다
  3. Many-To-Many(다대다)보다는 One-To-Many(일대다) 조인에 효과적
    • PK, UNIQUE

태그:

카테고리:

업데이트: