드라이빙 테이블(Driving Table)은 SQL쿼리에서 조인(Join)을 수행할 때, 먼저 검색을 시작하는 기준 테이블을 의미한다.
드라이빙 테이블(Driving Table)의 역할은?
- 조인을 수행할 때, 가장 먼저 읽는 테이블
- 드라이빙 테이블의 결과를 기준으로 다른 테이블과 조인
- 쿼리 성능 최적화를 위해 중요
SELECT u.id, u.name, o.order_id, o.amount
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE u.name = 'John';
- users 테이블에서 name = 'John'인 사용자를 찾는다 -> 드라이빙 테이블
- 찾은 id 값을 orders 테이블에서 검색하여 조인
--> users 테이블이 먼저 조회되고, 그 결과를 기반으로 orders 테이블과 조인됨 -> users가 드라이빙 테이블
드라이빙 테이블을 선택하는 기준
- WHERE 절의 필터링이 많은 테이블
- 조인을 수행하기 전에 데이터의 범위를 줄여서 성능을 최적화할 수 있다. - 결과 데이터가 작은 테이블
- 작은 테이블을 먼저 조회해서 조인하는 것이 성능이 더 좋다. - 인덱스를 활용할 수 있는 테이블
- 인덱스를 사용하면 조회 속도가 빠르므로, 인덱스가 있는 테이블을 드라이빙 테이블로 선택하는 것이 유리할 수 있다.
MySQL에서는 쿼리의 실행 계획을 수립할 때 사용 가능한 인덱스들로부터 조건절에 일치하는 레코드 건수를 대략 파악하고 최종적으로 가장 나은 실행 계획을 선택한다.
'데이터베이스 > MySQL' 카테고리의 다른 글
B-Tree 인덱스의 가용성 (0) | 2025.03.17 |
---|