[MySql] Explain

Code/Web 2020. 3. 8. 15:08


< id >
- SELECT 단위에 붙는 번호

//--------------
< select_type >

SIMPLE : 단순 select, (join 포함)
PRIMARY : 가장 바깥에 있는 select

DERIVED : from 안의 select (서브 쿼리)
SUBQUERY : 가장 바깥의 select 문에 있는 서브쿼리
DEPENDENT SUBQUERY : 가장 바깥의 select문에 '의존성'을 가진 서브쿼리의 select

UNCACHEABLE SUBQUERY
UNION : union 문의 두번째 select
DEPENDENT UNION : 바깥 쿼리에 의존성을 가진 union문의 두번째 select

//---------------
< table >
- 참조되는 테이블

//---------------
< partitions >


//------------------
< type >
- 레코드를 가져오는 방식
-  ALL 또는 index인 경우 : 쿼리에 사용할 적절한 인덱스가 없다는 뜻


* ALL : 전체 행 스캔 (주의! 느림)


* system :  테이블에 레코드가 1개 

* const :  테이블에 조건을 만족하는 레코드가 하나일 때, 상수 취급


* fulltext : fulltext 인덱스를 사용한 검색

* index : 인덱스 스캔
* index_merge  : 여러 개 인스턴스를 사용해 행을 가져오고 그 결과를 통합
* range :  BETWEEN이나 IN, '>', '>=' 등이 사용된 경우

* eq_ref :  조인시 기본키 이용
* ref  : 조인시 여러 키 사용
* ref_or_null :  ref와 마찬가지로 인덱스 접근 시 맨 앞에 저장되어 있는 NULL의 엔트리를 검색한다.


* unique_subquery :  오직 하나의 결과만을 반환하는 'IN'이 포함된 서브쿼리

* index_subquery : unique_sunquery와 비슷, 고유한 인덱스를 사용하지 않는 점이 다르다. (빠름)



//------------------
< possible_keys >
- 이용 가능성있는 인덱스의 목록


//------------------
< key >
- possible_keys 중 실제로 옵티마이저가 선택한 인덱스


//------------------
< key_len >
- 인덱스 길이


//------------------
< ref >
 key column에 지정된 인덱스와 비교되는 column 또는 constants


//------------------
< rows >
- 몇개의 행을 가져오는가


//------------------
< filtered >
- WHERE 을 적용하면 몇해 행이 남는가


//------------------
< extra >
- 힌트

 

//-------------

// 참고
https://denodo1.tistory.com/306  
https://12bme.tistory.com/160 

 

 

'Code > Web' 카테고리의 다른 글

웹서버 nginx 폴더에 패스워드 설정  (0) 2020.03.11
[펌] MySQL 8.0 새기능  (0) 2020.03.10
[MySql] Explain  (0) 2020.03.08
[MySql] GROUP BY 쿼리 에러 해결 방법  (0) 2020.03.04
[MySql] sql_mode 설정  (0) 2020.03.02
mysql DB 복원시 경고 메시지 해결 방법  (0) 2020.02.25
Posted by 코덴스

댓글을 달아 주세요