데이터베이스/MySQL

드라이빙 테이블(Driving Table)이란?

PSW 2025. 3. 20. 18:21

드라이빙 테이블(Driving Table)은 SQL쿼리에서 조인(Join)을 수행할 때, 먼저 검색을 시작하는 기준 테이블을 의미한다.

 

드라이빙 테이블(Driving Table)의 역할은?

  1. 조인을 수행할 때, 가장 먼저 읽는 테이블
  2. 드라이빙 테이블의 결과를 기준으로 다른 테이블과 조인
  3. 쿼리 성능 최적화를 위해 중요
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';
  1. users 테이블에서 name = 'John'인 사용자를 찾는다 -> 드라이빙 테이블
  2. 찾은 id 값을 orders 테이블에서 검색하여 조인

--> users 테이블이 먼저 조회되고, 그 결과를 기반으로 orders 테이블과 조인됨 -> users가 드라이빙 테이블

 

드라이빙 테이블을 선택하는 기준

  1. WHERE 절의 필터링이 많은 테이블
    - 조인을 수행하기 전에 데이터의 범위를 줄여서 성능을 최적화할 수 있다.
  2. 결과 데이터가 작은 테이블
    - 작은 테이블을 먼저 조회해서 조인하는 것이 성능이 더 좋다.
  3. 인덱스를 활용할 수 있는 테이블
    - 인덱스를 사용하면 조회 속도가 빠르므로, 인덱스가 있는 테이블을 드라이빙 테이블로 선택하는 것이 유리할 수 있다.

MySQL에서는 쿼리의 실행 계획을 수립할 때 사용 가능한 인덱스들로부터 조건절에 일치하는 레코드 건수를 대략 파악하고 최종적으로 가장 나은 실행 계획을 선택한다.

'데이터베이스 > MySQL' 카테고리의 다른 글

B-Tree 인덱스의 가용성  (0) 2025.03.17