MySQL Explain 실행계획 사용법 및 분석
Devel/DB_SQL2022. 3. 10. 00:00
반응형
MySQL Explain
실행 계획
-테이블에 저장된 모든 레코드(Row or Tuple)을 참조하지 않아도 되거나, 테이블을 Join할 때 Join되는 테이블들의 모든 조합을 체크해보지 않아도 될 경우 쿼리의 성능은 개선될 수 있다
-어떠한 작업(인덱스를 사용하는지, 테이블의 모든 Row를 참조 하는지 등등)의 조합으로 구성되는 지를 쿼리 실행 계획(Query Execution Plan)
실행 계획을 쿼리를 실행하기 전에 체크
쿼리가 실행될 때, 반드시 100% 쿼리 실행 계획에 따라 실행되지 않는 경우도 있다.
쿼리문 앞에 explain을 붙여서 실행하면 쿼리 실행 계획이 출력
explain
select d.department_id, d.department_name,
e.last_name, e.first_name, e.salary
from departments d, employees e
where d.department_id = e.department_id
and e.department_id =80;
실행하고자 하는 쿼리 앞에 explain을 붙여서 실행계획을 확인 할 수 있다.
실행계획 결과->
query cost가 낮으면 낮을 수록 더 좋은 쿼리이다. (상황에 따라 달라질 수 있다. 상대적)
쿼리 실행 계획 - 항목별 상세 내용
항목 중 select type, type, ref가 중요!
쿼리 실행 계획 - Select type의 종류
쿼리 실행 계획 - Type
mysql 실행계획을 볼때, type의 중요하게 보는데,
Type은 데이터를 조회할 때 키와 인덱스를 어떻게 활용하는지를 알린다.
쿼리 실행 계획 - Extra
인덱스는 별로도 생성되는데, 컬럼의 데이터를 가지고 인덱스를 만들고, 인덱스를 보면 그 컬럼의 데이터 추출 가능. 굳이 데이터 테이블 모두 조회하지 않아도 된다.
'Devel > DB_SQL' 카테고리의 다른 글
MySQL 서버 정보 확인하는 방법 (0) | 2022.03.12 |
---|---|
MySQL Index(인덱스) 조회, 생성, 수정, 삭제 및 사용 최적화 방법 (0) | 2022.03.11 |
Mac(맥) Homebrew MySql 설치 및 서버 시작, 종료, 재시작하기 (0) | 2022.03.09 |
homebrew mysql 완전히 삭제하는 방법 (0) | 2022.03.08 |
SQL index 길이, 크기 확인 하는 방법 (0) | 2022.03.07 |
댓글()