2021. 8. 9. 21:36ㆍMariaDB DBMS/MariaDB 튜닝준비
실행 계획 수행
SQL문으로 요청한 데이터를 어떻게 조회할 것인지에 대한 계획, 즉 경로에 대한 계획이다.
(*) 여기서부터는 GUI인 MYSQL 워크벤치를 사용
기본실행계획 수행문 : 아래 아무거나 사용해도 된다.
개인적으로 EXPLAIN 사용
EXPLAIN SQL문;
DESC SQL문;
실행계획 수행
SQL문 앞에 EXPLAIN 키워드를 입력하고 실행하면 옵티마이저가 만든 실행계획이 출력된다.
use tuning;
show tables;
explain
select *
from 사원
where 사원번호 between 100001 and 200000;
(*) 마리아 DB 버전 10.0.5 이상에서는 UPDATE 및 DELETE 문에서도 실행계획을 확인할 수 있다.
기본 실행계획 항목 분석
EXPLAIN 키워드 실행계획 항목
id
SQL문 실행순서 표시
조인할 때는 똑같은 ID 표시
explain
select 사원.사원번호,
사원.이름,
사원.성,
급여.연봉,
(
select max(부서번호)
from 부서사원_매핑 as 매핑
where 매핑.사원번호 = 사원.사원번호
) 카운트
from 사원, 급여
where 사원.사원번호 = 10001
and 사원.사원번호 = 급여.사원번호;
1. id가 1인 행이 2개로 테이블끼리 조인
2. id가 2인 행이 실행
select_type
SIMPLE
SQL문을 구성하는 SELECT 문의 타입을 출력하는 항목
SELECT문이 단순히 FROM 절에 위치한 것인지 서브쿼리인지
UNION절로 묶인 SELECT 문인지 등의 정보 제공
explain
select *
from 사원
where 사원번호 = 100000;
단순 SELECT SQL문으로 select_type을 보면 SIMPLE (단순) 임을 알 수 있다.
explain
select 사원.사원번호,
사원.이름,
사원.성,
급여.연봉
from 사원,
(
select 사원번호,
연봉
from 급여
where 연봉 > 80000
) 급여
where 사원.사원번호 = 급여.사원번호
and 사원.사원번호 between 10001 and 10010;
단순 SELECT SQL문으로 select_type을 보면 SIMPLE(단순) 임을 알 수 있다.
PRIMARY
서브쿼리를 감싸는 외부쿼리이거나,
UNION이 포함된 SQL 문에서 첫 번째로 SELECT 키워드가 작성된 구문에 표시된다.
explain
select 사원.사원번호,
사원.이름,
사원.성,
(
select max(부서번호)
from 부서사원_매핑 as 매핑
where 매핑.사원번호 = 사원.사원번호
) 카운트
from 사원
where 사원.사원번호 = 100001;
스칼라 서브쿼리가 있을 때는 외부 쿼리의 사원 테이블에 먼저 접근한다는 의미로 PRIMARY 가 표시된다.
'MariaDB DBMS > MariaDB 튜닝준비' 카테고리의 다른 글
[SQL 튜닝 실습] SQL 튜닝 준비 5 (0) | 2021.08.09 |
---|---|
[SQL 튜닝 실습] SQL 튜닝 준비 4 (0) | 2021.08.09 |
[SQL 튜닝 실습] SQL 튜닝 준비 2 (0) | 2021.08.09 |
[SQL 튜닝 실습] SQL 튜닝 준비 1 (0) | 2021.08.09 |