조인의 종류와 원리

임찬형·2022년 7월 11일
0

CS 공부

목록 보기
15/19

조인의 종류

조인이란?

두 개 이상의 테이블을 묶어서 하나의 결과물로 만드는 것.

  1. Inner join
    왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기.

  2. Left outer join
    왼쪽 테이블의 모든 행이 결과 테이블에 표시 (왼쪽 테이블에는 있는데 오른쪽 테이블에 없는 값은 null로 표시)

  3. Right outer join
    오른쪽 테이블의 모든 행이 결과 테이플에 표시 (오른쪽 테이블에는 있는데 왼쪽 테이블에 없는 값은 null로 표시)

  4. Full outer join
    두 테이블의 모든 행을 표시 (한쪽에는 없는 값은 null로 표시)

조인의 원리

  1. 중첩 루프 조인 (Nested loop join)
    for문과 같은 원리로 조건에 맞는 조인을 하는 방법.
    랜덤 접근에 대한 비용이 많이 들어 대용량 테이블에선 하지 않음.
    두 테이블 중 작은 테이블을 선행 테이블로 정하는 것이 유리함.

+) Nested loop의 효율성을 위해 테이블을 작은 블록으로 나눠 블록 단위로 조인하는 방법도 있음 (Block Nested Loop)

  1. 정렬 병합 조인 (Sort merge join)
    각 테이블을 조인할 필드 기준으로 정렬한 후 조인 수행.
    적절한 인덱스가 없고 대용량 테이블을 조인하거나 비교 연산자가 조인 조건일 때 사용됨.

  2. 해시 조인 (Hash join)
    조인을 수행할 테이블의 조인 컬럼을 기준으로 해시 함수를 수행해 동일한 해시값을 가지는 것들끼리 비교.
    해시 함수를 이용하여 조인하므로 ==(Equal) 조건을 적용할 때 사용가능.
    해시 테이블을 메모리에 생성하므로 행의 수가 적은 테이블을 선행 테이블로 하는 것이 좋음.

0개의 댓글