드라이빙 테이블(Driving Table)과 드리븐 테이블(Driven Table)

허성재's avatar
Sep 03, 2024
드라이빙 테이블(Driving Table)과 드리븐 테이블(Driven Table)
"드라이빙 테이블(Driving Table)"과 "드리븐 테이블(Driven Table)"은 주로 SQL 쿼리 또는 데이터베이스 조인(join)에서 사용되는 용어입니다. 이 용어들은 SQL의 조인 작업에서 어느 테이블이 주도적으로 검색되고, 어느 테이블이 그에 따라 조인되는지를 나타냅니다.

1. 드라이빙 테이블 (Driving Table)

  • 드라이빙 테이블은 조인 쿼리에서 가장 먼저 처리되는 테이블을 의미합니다.
  • 일반적으로 쿼리의 실행 계획에서 가장 작은(혹은 효율적인) 테이블이 드라이빙 테이블로 선택됩니다. 이유는, 작은 테이블부터 검색을 시작하면 메모리 사용을 줄이고 성능을 최적화할 수 있기 때문입니다.
  • 드라이빙 테이블의 각 행이 검색된 후, 그에 해당하는 행들을 드리븐 테이블에서 검색하게 됩니다.

2. 드리븐 테이블 (Driven Table)

  • 드리븐 테이블은 드라이빙 테이블에 의해 조인되는 테이블을 의미합니다.
  • 드라이빙 테이블에서 검색된 행에 따라, 드리븐 테이블에서 조건에 맞는 행들을 검색하거나 결합합니다.
  • 드리븐 테이블은 주로 큰 테이블이거나, 인덱스가 존재해 드라이빙 테이블에서 전달된 키를 통해 효율적으로 검색할 수 있는 테이블이 됩니다.

예시를 통한 이해

다음은 간단한 SQL 조인의 예시입니다:
sql코드 복사 SELECT e.name, d.department_name FROM employees e JOIN departments d ON e.department_id = d.department_id;
  • 이 쿼리에서 employees 테이블이 드라이빙 테이블로 선택될 수 있습니다.
  • employees 테이블에서 각 직원의 department_id를 기준으로, departments 테이블(드리븐 테이블)에서 해당 부서 이름을 찾습니다.

실행 계획 (Execution Plan)

데이터베이스의 쿼리 최적화 도구는 드라이빙 테이블과 드리븐 테이블을 자동으로 결정합니다. 이 결정은 테이블 크기, 인덱스 존재 여부, 통계 정보 등에 따라 다릅니다. 쿼리의 실행 계획을 확인하면 어떤 테이블이 드라이빙 테이블이고 드리븐 테이블인지 파악할 수 있습니다.
  • 드라이빙 테이블: 검색이 먼저 시작되는 테이블.
  • 드리븐 테이블: 드라이빙 테이블에 의해 검색이 유도되는 테이블.
이 개념을 이해하면, 복잡한 쿼리를 최적화하고 성능을 향상시키는 데 도움이 됩니다.
Share article

heo-gom