[데이터베이스] 논리적/물리적 조인

Nux·2022년 4월 14일
1
post-custom-banner

물리적/논리적 조인

물리적 조인

  • DB옵티마이저(DBMS 엔진)에 의해 내부적으로 발생하는 테이블 결합 방식

중첩반복 Nested Loop Join

  • 후행 테이블에 하나씩 엑세스하며 선행 테이블에 조인시킴
  • 선행 테이블 처리 범위가 작업량 결정

정렬병합 Merge Join

  • 양쪽 테이블을 정렬 후 스캔하여 조인 수행
  • 데이터 처리량이 많을 때 이점이 있으나 정렬 시 메모리 사용이 증가함

해시매치 Hash Join

  • 두 테이블 중 작은 테이블로 해시테이블을 생성하고 큰 테이블로 해시테이블을 탐색하면서 조인하는 방식
  • 해시테이블 생성 시 많은 메모리를 사용

사용

  • 쿼리의 서두(select구문의 뒤)에 힌트를 이용해 물리적 조인 지정 가능
    • 중첩반복: /+ ORDERED USE_NL(table1 table 2...) /
    • 해시매치: /+ ORDERED USE_HASH (table_name) /

논리적 조인

  • 사용자가 SQL문으로 지정하는 테이블 결합 방식

inner join

  • 조인 시 두 테이블 간 동일한 값이 있는 행만 반환

outer join

  • 두 테이블 간 교집합 데이터+한쪽 테이블에만 있는 데이터 반환
  • 한쪽 테이블의 위치에 따라 Left, Right Join으로 나뉘어짐

cross join

  • Join 조건이 없는 경우 생길 수 있는 모든 데이터의 조합 반환

self join

  • 동일 테이블끼리의 조인

Full Outer Join

  • 두 테이블의 모든 데이터를 출력
post-custom-banner

0개의 댓글