제 3절 조인 수행 원리

suyeon-jung·2021년 11월 14일
0

SQLD

목록 보기
18/19

조인이란?
2개 이상의 테이블을 하나의 테이블로 만드는 연산

  • 종류
    • NL Join
    • Sort Merge Join
    • Hash Join

1. NL Join

두개의 테이블을 중첩된 반복문처럼 조인을 수행한다.
반복문 외부에 있는 테이블을 선행 테이블 또는 외부테이블이라고 한다.
반복문 내부에 있는 테이블을 후행 테이블 또는 내부테이블이라고 한다.

for 선행 테이블 읽음 
	for 후행 테이블 읽음
    	(선행 테이블과 후행 테이블 조인)

선행 결과값을 줄이기 위해 결과 행의 수가 적은 테이블을 선행 테이블로 선택한다.

2. Sort Merge Join

조인 컬럼을 기준으로 데이터를 정렬하여 조인한다.
넓은 범위의 데이터를 처리할 때 주로 이용한다.
정렬 데이터가 많을 경우 성능이 떨어질 수 있다.(디스크 I/O로 인한 부하 발생)
비동등 조인에 대해서도 조인이 가능하다.
인덱스를 사용하지 않아 인덱스가 존재하지 않을 경우에 사용할 수 있다.

3. Hash Join

해싱 기법을 이용하여 조인을 수행한다.
NL Join 의 랜덤 액세스 문제와 Sort Merge Join 의 정렬 작업의 부하를 해결하기 위한 대안으로 사용된다.
조인 컬럼의 인덱스가 존재하지 않을때에도 사용할 수 있다.
해시 함수를 사용하기 때문에 동등 조인만 가능하다.
해시 테이블의 크기가 메모리에 적재할 수 있는 크기보다 커지면 디스크를 사용한다.

0개의 댓글