본문 바로가기
Language/SQL

[MySQL] 실행 계획 및 explain 읽는 방법, 정보 확인 방법

by 박살낼겨 2022. 2. 28.

** 유의사항 : 필자기준 필요한 것만 한 눈에 보이도록 작성 **

  • type : 테이블 내 어떻게 값을 찾았는지 확인할 수 있다.
    - const : PK, UNIQUE 한 값으로 인덱스 이용(가장빠름)
    - eq_ref : PK, UNIQUE 한 값으로 인덱스 이용(가장빠름)
    - ref : 동등비교를 통해 인텍스 이용(빠름)
    - range : 인덱스를 이용해 값 비교(BETWEEN)
    - ALL : 인덱스 이용없이 테이블 값 전체를 스캔
  • possible_keys : WHERE 조건에 쓰여진 값으로 이용할 수 있는 인덱스를 나타내줌

  • key : 실제 이용한 인덱스

 

** 인덱스는?

    - cadinality(카디널리티)가 높으면 높을 수록 성능이 좋아진다.

       예) 주민등록번호, 고유번호, 핸드폰번호 등...

    - 선택도가 낮을 수록(카디널리티 / 레코드의 총 갯수) : 1이 될 수록 유니크 하다는 뜻

    - 활용도가 높을 수록 쓰면 좋다(WHERE절에 자주쓰이는 컬럼)
       예) 기간(필자의 경우 기간 조회 필수여서 인덱스에 무조건 있다) ...
    - 중복도가 낮을 수록(카디널리티와 비슷한 이유)