MySQL 실행 계획 을 배 워 드릴 게 요.
5781 단어 MySQL계획 을 집행 하 다
실행 계획 은 MySQL 조회 최적화 회 의 를 거 친 후에 구체 적 인 실행 방식 을 말한다.MySQL 이 제 공 했 습 니 다. 실행 계획 에 대한 정 보 를 얻 기 위해 EXPLAIN 문 구 를 사용 합 니 다.주의해 야 할 것 은 EXPLAIN 문 구 는 관련 문 구 를 실제로 실행 하지 않 고 최적화 기 를 통 해 문 구 를 분석 하여 가장 좋 은 조회 방안 을 찾 아 해당 하 는 정 보 를 표시 하 는 것 이다.
실행 계획 은 보통 SQL 성능 분석,최적화 등 장면 에 사용 된다.explain 의 결 과 를 통 해 데이터 시트 의 조회 순서,데이터 조회 작업 의 조작 유형,어떤 색인 이 명중 할 수 있 는 지,어떤 색인 이 실제 적 으로 명중 할 수 있 는 지,각 데이터 시트 에 몇 줄 의 기록 이 조회 되 는 지 등 정 보 를 알 수 있다.
explain 실행 계획 은 SELECT,DELETE,INSERT,REPLACE 및 UPDATE 문 구 를 지원 합 니 다.우 리 는 일반적으로 select 조회 문 구 를 분석 하 는 데 많이 사용 된다.
2.실행 계획 실전
다음 검색 어의 실행 계획 을 간단히 살 펴 보 겠 습 니 다.
mysql> explain SELECT * FROM dept_emp WHERE emp_no IN (SELECT emp_no FROM dept_emp GROUP BY emp_no HAVING COUNT(emp_no)>1);
+----+-------------+----------+------------+-------+-----------------+---------+---------+------+--------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+----------+------------+-------+-----------------+---------+---------+------+--------+----------+-------------+
| 1 | PRIMARY | dept_emp | NULL | ALL | NULL | NULL | NULL | NULL | 331143 | 100.00 | Using where |
| 2 | SUBQUERY | dept_emp | NULL | index | PRIMARY,dept_no | PRIMARY | 16 | NULL | 331143 | 100.00 | Using index |
+----+-------------+----------+------------+-------+-----------------+---------+---------+------+--------+----------+-------------+
이 를 통 해 알 수 있 듯 이 계획 을 집행 한 결과 모두 12 열 이 있 고 각 열 대표 의 의 미 는 다음 과 같다.열명
속뜻
id
SELECT 조회 의 시퀀스 식별 자
select_type
SELECT 키워드 에 대응 하 는 검색 유형
table
시계 이름
partitions
일치 하 는 파 티 션,파 티 션 되 지 않 은 표 의 값 은 NULL 입 니 다.
type
표 접근 방법
possible_keys
사용 가능 한 인덱스
key
실제 색인
key_len
선택 한 인덱스 길이
ref
색인 등 값 조 회 를 사용 할 때 색인 과 비교 하 는 열 이나 상수
rows
읽 을 줄 수 예상
filtered
표 조건 에 따라 여과 한 후 남 겨 진 기록 수의 백분율
Extra
추가 정보
다음은 집행 계획 의 일부 중요 열 에 대한 상세 한 설명 을 살 펴 보 겠 습 니 다.
id:
SELECT 식별 자.검색 중인 SELECT 번호 입 니 다.이 줄 이 다른 줄 의 병합 결 과 를 참조 하면 값 은 NULL 일 수 있 습 니 다.id 와 동시에 실행 순 서 는 위 에서 아래로;id 가 같 지 않 을 때 id 값 이 클 수록 우선 순위 가 높 을 수록 먼저 실 행 됩 니 다.
select_type:
검색 의 유형,일반적인 값 은:
검색 에 사용 되 는 표 이름 을 표시 합 니 다.줄 마다 해당 하 는 표 이름 이 있 습 니 다.표 이름 은 정상 적 인 표를 제외 하고 다음 과 같은 값 일 수도 있 습 니 다.
조회 실행 유형 은 조회 가 어떻게 실행 되 는 지 설명 합 니 다.모든 값 의 순 서 는 최 우선 에서 최 악 으로 정렬 합 니 다.
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
흔히 볼 수 있 는 몇 가지 유형의 구체 적 인 의 미 는 다음 과 같다.
possible_keys 열 은 MySQL 에서 조 회 를 실행 할 때 사용 할 수 있 는 색인 을 표시 합 니 다.이 열 이 NULL 이면 사용 가능 한 색인 이 없 음 을 표시 합 니 다.이 경우 WHERE 구문 에 사 용 된 열 을 검사 해 이 열 에 있 는 하나 이상 의 색인 을 추가 하 는 방법 으로 검색 성능 을 향상 시 킬 수 있 는 지 확인 해 야 한다.
key:
key 열 은 MySQL 이 실제 사용 하 는 색인 을 표시 합 니 다.NULL 이면 색인 을 사용 하지 않 았 음 을 표시 합 니 다.
key_len:
key_len 열 은 MySQL 이 실제 사용 하 는 색인 의 최대 길 이 를 표시 합 니 다.연합 색인 을 사용 할 때 여러 열의 길이 와.수 요 를 만족 시 키 는 전제 에서 짧 을 수록 좋다.key 열 에 NULL 이 표시 되면 keylen 열 에 도 NULL 이 표 시 됩 니 다.
rows:
rows 열 은 표 통계 정보 와 선택 상황 에 따라 필요 한 기록 을 찾 거나 읽 어야 할 줄 수 를 대체적으로 계산 하고 수치 가 작 을 수록 좋다 고 밝 혔 다.
Extra:
이 열 은 MySQL 분석 조회 의 추가 정 보 를 포함 하고 있 습 니 다.이 정 보 를 통 해 MySQL 이 어떻게 조 회 를 실 행 했 는 지 더욱 정확하게 이해 할 수 있 습 니 다.일반적인 값 은 다음 과 같 습 니 다.
이상 은 MySQL 실행 계획 의 상세 한 내용 을 배 워 드 리 는 것 입 니 다.MySQL 실행 계획 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.