[SQL 튜닝 실습] SQL 튜닝 준비 4
2021. 8. 9. 21:43ㆍMariaDB DBMS/MariaDB 튜닝준비
반응형
PRIMARY
explain
select 사원1.사원번호,
사원1.이름,
사원1.성
from 사원 as 사원1
where 사원1.사원번호 = 100001
union all
select 사원2.사원번호,
사원2.이름,
사원2.성
from 사원 as 사원2
where 사원2.사원번호 = 100002;
SUBQUERY
독립적으로 실행되는 서브쿼리로
SELECT절의 스칼라 서브쿼리와
WHERE 절의 중첩 서브쿼리일 경우에 해당
explain
select
(
select count(*)
from 부서사원_매핑 as 매핑
) as 카운트,
(
select max(연봉)
from 급여
) as 급여;
2번과 3번의 id값의 서브쿼리는 각각 독립적으로 실행된다.
DERIVED
FROM 절에 작성된 서브쿼리로
FROM 절의 별도 임시테이블인 인라인 뷰를 말한다.
explain
select 사원.사원번호,
급여.연봉
from 사원,
(
select 사원번호,
max(연봉) as 연봉
from 급여
where 사원번호 between 10001 and 20000
) as 급여
where 사원.사원번호 = 급여.사원번호;
해당 인라인 뷰는 실행계획을 통해 2번째 id로 실행되고 있다.
UNION
UNION 및 UNION ALL 구문으로 합쳐진 SELECT 문에서
첫번째 SELECT 구문을 제외한 이후의 SELECT 구문에 해당하는 것을 나타내며
이 때 UNION 구문의 첫 번째 SELECT 절은 PRIMARY 유형으로 출력된다.
explain
select 'M' as 성별, MAX(입사일자) as 입사일자
from 사원 as 사원1
where 성별 = 'M'
UNION ALL
select 'F' as 성별, MIN(입사일자) as 입사일자
from 사원 as 사원2
where 성별 = 'F';
UNION RESULT
UNION ALL 이 아닌 UNION 구문으로 SELECT 절을 결합했을 때 출력되며 정렬을 하여 중복제거를 한다.
explain
select 사원_통합.*
from (
select max(입사일자) as 입사일자
from 사원 as 사원1
where 성별 = 'M'
union
select min(입사일자) as 입사일자
from 사원 as 사원2
where 성별 = 'M'
) as 사원_통합;
반응형
'MariaDB DBMS > MariaDB 튜닝준비' 카테고리의 다른 글
[SQL 튜닝 실습] SQL 튜닝 준비 5 (0) | 2021.08.09 |
---|---|
[SQL 튜닝 실습] SQL 튜닝 준비 3 (0) | 2021.08.09 |
[SQL 튜닝 실습] SQL 튜닝 준비 2 (0) | 2021.08.09 |
[SQL 튜닝 실습] SQL 튜닝 준비 1 (0) | 2021.08.09 |