1) 중첩 루프 조인
2) 정렬 병합 조인
3) 해시 조인

중첩 루프 조인은 가장 기본적인 JOIN 알고리즘입니다. 두 테이블을 결합할 때, 외부 테이블의 각 행에 대해 내부 테이블을 반복하면서 일치하는 값을 찾습니다. 쉽게 말해, 두 테이블을 중첩된 반복문으로 비교하는 방식입니다.
장점
단점
정렬 병합 조인은 두 테이블의 JOIN 조건에 사용된 컬럼이 정렬되어 있을 때 사용하는 조인 방법입니다. 두 테이블이 모두 정렬된 상태라면, 한 번의 순차적 비교만으로도 일치하는 값을 빠르게 찾을 수 있습니다. 이 알고리즘은 데이터를 정렬한 다음, 두 테이블을 병합하여 조인하는 방식입니다.
장점
단점
해시 조인은 두 테이블 간의 조인을 수행할 때, 해시 테이블을 사용하여 빠르게 일치하는 값을 찾는 알고리즘입니다. 보통 해시 조인은 대규모의 데이터를 다룰 때 매우 효율적입니다. 두 테이블 중 작은 테이블을 기준으로 해시 테이블을 생성한 뒤, 다른 테이블과 비교하여 일치하는 행을 찾습니다.
장점
단점
메모리 사용량: 해시 테이블을 메모리에 생성하므로, 메모리 사용량이 많이 필요, 메모리에 올릴수 없을 정도라면 디스크를 사용하는 비용이 발생합니다.
인덱스가 없는 경우 유리하지만 사용하는 경우에는 다른 조인 방법이 더 나을 수 있습니다.
해시 조인에서 빌드 단계와 프로브 단계는 해시 조인의 두 가지 주요 단계가 있습니다.
1. 빌드 단계 (Build Phase)
빌드 단계는 두 테이블 중 하나(일반적으로 작은 테이블)를 선택하여 해시 테이블을 생성하는 단계입니다. 이 테이블의 JOIN 조건에 사용되는 컬럼을 기준으로 해시 값을 계산하여, 이 컬럼의 데이터를 해시 테이블에 저장합니다.
2. 프로브 단계 (Probe Phase)
프로브 단계는 빌드 단계에서 생성한 해시 테이블을 이용해 다른 테이블의 데이터와 매칭하는 단계입니다. 이 과정에서 해시 테이블과 일치하는 데이터를 찾기 위해 두 번째 테이블의 데이터를 읽고, 그 값을 해시 테이블에서 조회하여 조인 조건에 맞는 데이터를 찾아냅니다.