7-8 질문
61
작성한 질문수 42

현재 실행 계획이
강의랑 반대라서 질문 남겨봅니다
드라이빙 테이블이 de 로 나오는 이유가 뭘까요 ?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
kkkkkk님, 드라이빙 테이블이 de로 나오는 이유에 대해 설명드리겠습니다. SQL 실행 계획에서 드라이빙 테이블이 결정되는 것은 여러 요인에 의해 좌우됩니다. 보통 옵티마이저는 쿼리를 효율적으로 실행하기 위해 가장 적은 비용을 드는 경로를 선택하게 됩니다. 여기서 비용은 단순히 실행 시간이 아닌, 데이터 접근 및 처리에 소모되는 비용을 의미합니다.
드라이빙 테이블은 조인이 수행되는 순서를 결정하는데, 기본적으로 옵티마이저는 다음과 같은 요소들을 고려하여 드라이빙 테이블을 선택합니다:
1. 통계 정보: 테이블의 데이터 수, 인덱스의 유무, 카디널리티 등.
2. 필터 조건: WHERE 조건에 의해 더 많은 데이터를 거를 수 있는 테이블.
3. 인덱스 사용 여부: 보다 효율적으로 데이터를 접근하기 위해 인덱스를 사용하는 테이블.
쿼리에서 드라이빙 테이블인 de가 선택된 이유는, 해당 테이블이 인덱스를 잘 활용하여 적은 수의 데이터를 빠르게 필터링할 수 있기 때문일 수 있습니다. 따라서, 옵티마이저는 dept_emp_mapping 테이블을 먼저 접근하여 조인을 수행할 데이터 범위를 줄이고, 그 다음으로 manager 테이블과의 존재 조건을 확인하는 방식으로 쿼리를 실행할 수도 있습니다.
만약 실행 계획이 강의와 다르게 나온다면, 데이터의 규모나 인덱스의 유무, 혹은 통계 정보의 차이 때문일 가능성이 높습니다. 오히려 실행 계획이 다른 경우는 데이터베이스 내 다른 변수에 의해 발생할 수 있으므로, 인덱스와 통계 정보의 차이를 점검해보시는 것도 추천드립니다.
추가로 실행 계획을 더 이해하기 위해 EXPLAIN 명령어를 활용하여 세부적인 실행 계획을 확인하고 분석하는 것도 좋은 방법입니다.
이미지 원본 URL을 참고하셔서 더욱 깊이 있는 조사에도 도움이 되었으면 합니다: 여기.
더 궁금하신 점이 있으시다면 언제든지 질문해주세요!
드랍 테이블로 지운 ordes에 대해서 질문
0
8
1
문제 풀이 1번 질문
0
22
1
twitterdb 연결이 안돼요
1
26
2
Kafka Cluster 구성도 질문
0
21
1
아주 작은 정오표 전달드립니다.
0
52
2
mysql워크벤치를 실행할때마다 오류가 뜹니다. 해결 방법좀 가르켜주세요.
0
43
1
온톨로지 구축
0
26
1
실제로 작은 기업에서 기획 롤
1
25
1
함수기반 인덱스
0
29
2
날짜 인덱스관련 질문
0
26
1
복합인덱스 확인법
0
23
0
이제 인프런에서 강의 더 안산다. 후져....
0
42
1
order_product 까마귀발
0
44
2
소스코드 어디서 다운받아요?
0
52
5
답을언제쯤받아볼수있나요
0
48
2
공통 코드 , 계층 구조 질문
1
37
1
77번 문제
0
27
1
수강기간 연장
0
37
1
FTS 방식으로 수행하는 나쁜 SQL 에서 질문이 있습니다.
0
60
0
다음과 같은 쿼리가 더 좋은 결과를 보이는데 이유가 뭔지 궁금합니다.
0
144
1
rollup mariadb 11 ver 기준
0
133
1
use index, force index 힌트 질문
0
256
1
BNL Join 사용
0
136
1
select_type 에서 'simple' 경우 각각의 테이블이 '드라이빙' 또는 '드리븐' 인지 어떻게 알수 있나요?
0
112
0





