"드라이빙 테이블(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