0. 조인의 종류
기술노트
0. 조인의 종류
조인이란 두 개 이상의 테이블을 묶어 하나의 결과를 만드는 것을 의미한다. MySQL에서는 JOIN, MongoDB에서는 lookup이라고 불린다. 몽고디비는 조인시 성능이 떨어지므로 여러 테이블을 조인하는 작업이 많을 경우 관계형 데이터베이스를 써야한다.
1. 내부 조인
왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기한다.
2. 왼쪽 조인
왼쪽 테이블의 모든 행이 결과 테입르에 표기된다.
3. 오른쪽 조인
오른쪽 테이블의 모든 행이 결과 테이블에 표기된다.
4. 합집합 조인
두 개의 테이블을 기반으로 조인 조건에 만족하지 않는 행까지 모두 표기한다.
1. 조인의 원리
앞서 설명한 조인의 종류는 이 원리를 기반으로 조인을 한다.
1. 중첩 루프 조인
for문과 같은 원리로 조건에 맞는 조인을 하는 법이다. 랜덤 접근에 대한 비용이 많으 증가하므로 대용량의 테이블에서는 사용하지 않는다.
2. 정렬 병합 조인
각각의 테이블을 조인할 필드 기준으로 정렬하고 정렬이 끝난 이후에 조인 작업을 수행하는 조인이다.
3. 해시 조인
해시 테이블을 기반으로 조인하는 법이다. 두 개의 테이블을 조인한다고 했을 때 하나의 테이블이 메모리에 존헌이 들어간다면 보통 중첩 루프 조인보다 더 혀율적이다.