-
[MySQL] 조인 관련 주의사항 (3)@ 17. 1 ~ 18/DB 2018. 6. 28. 23:08
MySQL 조인 처리에서 특별히 주의해야할 부분은
1. 실행 결과의 정렬순서
2. INNER JOIN과 OUTER JOIN의 선택
2가지 정도이다.
조인 실행 결과의 정렬 순서
일반적으로 조인으로 쿼리가 실행되는 경우, 드라이빙 테이블로부터 레코드를 읽는 순서가 전체 쿼리의 결과 순서에 그대로 적용되는 것이 일반적
이는 네스티드-루프 조인 방식의 특징이기도 하다.
SELECT de.dept_no, e.emp_no, e.first_name
FROM dept_emp de, employees e
WHERE e.emp_no=de.emp_no
AND de.dept_no='d005';
실행 계획은 아래와 같다
id
select_type
table
type
key
key_len
ref
rows
Extra
1
SIMPLE
de
ref
PRIMARY
12
const
55555
Using where;
Using index
1
SIMPLE
e
eq_ref
PRIMARY
4 de.emp_no
1
dept_emp 테이블을 검색한 결과는 dept_no 칼럼 순서대로 정렬되고 다시 emp_no로 정렬되어 반환된다는 것을 예상할 수 있다.
그런데 이 쿼리의 WHERE 조건에 dept_no='d005'로 고정되어 있으므로 emp_no로 정렬된 것과 같다.
(고정되어있으니까 신경안쓰고 WHERE 조건에 비중을 두고 보면 그렇다는것)
근데 이런 순서가 옵티마이저가 선택한거지 다른 선택이면 결과가 보장되지 않는다.
'@ 17. 1 ~ 18 > DB' 카테고리의 다른 글
[MySQL] 실행계획 & select_type (0) 2018.07.01 [MySQL] 조인 (2) (0) 2018.06.28 [MySQL] 테이블 조인 (1) (0) 2018.06.26 인덱스 관련 (0) 2018.02.27 각 키 설명 (0) 2018.02.27