참고자료 : https://velog.io/@min9288/백엔드-기술-면접-질문데이터베이스
join
- 두 개 이상의 테이블을 하나의 집합으로 만드는 연산(두 테이블 사이에서 수행) 입니다.
- 자주 사용하는 Join으는 NL Join, Sort Merge Join, Hash Join이 있습니다.
NL Join( Nested Loop Join )
- 중첩된 반복문과 유사한 방식으로 사용합니다.
- 랜덤 액세스 방식으로 데이터를 읽습니다.
- 외부 테이블의 각 행에 대해 내부 테이블을 한 번만 스캔합니다.장점은,처리량이 많을 때 성능상 이점이 있습니다.단점은,정렬에 따른 부담이 있습니다. (메모리 사용 증가)
Sort Merge Join
- 칼럼을 기준으로 데이터를 정렬하여 조인을 수행합니다.
- 스캔 방식으로 데이터를 읽습니다.
- 조인 칼럼의 인덱스를 사용하지 않기 때문에 조인 칼럼의 인덱스가 존재하지 않을 경우데도 사용할 수 있는 기법입니다.
- 조인 작업을 위해 항상 정렬 작업이 발생하는 것은 아닙니다.
Hash Join
- 해싱 기법을 이용하여 조인을 수행합니다.
- 조인을 수행할 테이블의 조인 칼럼을 기준으로 해쉬 함수를 수행하여, 서로 동일한 해쉬 값을 갖는 것들 사이에서 실제 값이 같은지를 비교하면서 조인을 수행합니다.