Join 방식

yshjft·2022년 11월 17일
0

데이터베이스 

목록 보기
7/10

Nested Loop Join

2개 이상의 테이블에서 하나의 테이블을 기준으로 순차적으로 상대방 ROW를 결합하여 원하는 결과를 추출하는 방식

Driving Table

  • 선행 테이블
  • 조인 시 먼저 액세스 되는 테이블
  • Where 절로 최대한 데이터를 거를 수 있는 테이블/데이터 양이 적은 테이블로 선정

Driven Table

  • 후행 테이블
  • 조인시 나중에 액세스 되는 테이블
  • 조인을 위한 인덱스가 생성 필요

특징

  • 좁은 범위에 유리한 성능
  • Random Access 기반
  • 실행 속도 = 선행 테이블 사이즈 * 후행 테이블 접근 횟수(이중 for 문 생각하면 쉬움)

참고

랜덤 액세스 & 스캔

Sort Merge Join

양 테이블을 각각 접근하여 결과를 정렬하고(조인 컬럼을 기준으로 정렬) 정렬한 결과를 Full Table Scan해가면서 연결 조건으로 Merge하는 방식

특징

  • 연결을 위해 랜덤 액세스를 하지 않고 스캔을 하면서 수행
  • 두 결과 집합의 크기가 차이가 많이 나는 경우에는 비효율적

Hash Join

  • 두 테이블 중 하나를 Hash Table로 선정하여, 테이블의 key 값을 Hash 알고리즘으로 비교하여 조인을 수행하는 방식
  • Sort-Merge 조인은 소트의 부하가 많이 발생하여, 이를 보완하기 위한 방법으로 Sort 대신 해쉬값을 이용하는 조인

특징

  • 대용량 처리의 선결조건인 랜덤 액세스와 정렬에 대한 부담을 해결할 수 있는 대안
profile
꾸준히 나아가자 🐢

0개의 댓글