JOIN시 먼저 엑세스 되어 Access path(접근 경로)를 주도하는 테이블을 드라이빙 테이블(TRIVING TABLE, OUTER TABLE)이라고 한다.
DRIVEN TABLE 엑섹스 된 후 나중에 액세스 되는 테이블을 드리븐 테이블(DRIVEN TABLE, INNER TABLE)이라고 한다.
- 인덱스(INDEX)의 존재 및 우선순위 혹은 FROM절에서의 TABLE 지정 순서에 영향을 받음
- 어느 테이블이 먼저 엑세스되냐에 따라 속도의 차이가 크게 날 수 있음
- 많은 양의 데이터를 다룰 때, 드라이빙 테이블은 매우 중요하다.
10000만건 데이터를 가진 테이블 A
5000만건 데이터를 가진 테이블 B
A테이블을 먼저 드라이빙하게 된다면 -> 10000번 돌면서 B테이블 탐색
B테이블을 먼저 드라이빙하게 된다면 -> 5000번 돌면서 A테이블 탐색
즉, 작업 대상이 되는 행의 수가 적은 테이블부터 액세스 되어야 전체 탐색이 줄어든다.
- 인덱스를 이용한 액세스 방식이 전체 테이블 액세스 방식보다 우선순위가 높음
- 조인 칼럼에 대한 인덱스가 양쪽 테이블에 모두 존재할 때, 우선순위가 높은 테이블을 선택
- 조인 칼럼에만 인덱스가 존재하는 경우에는 인덱스가 없는 테이블을 먼저 선택하여 조인 수행
- 만약 조인 테이블의 우선순위가 동일하지않다면, FROM 절에 나열된 테이블의 역순으로 수행