MySQL 실행 계획이란?

실행 계획 조회하기

  1. 인덱스 후보 1개일 때
EXPLAIN SELECT * FROM PRODUCT WHERE STATUS = 'OPEN'

Untitled

⇒ 해당 쿼리문의 인덱싱 방식과 사용하고 있는 index table을 보여줌

  1. 다수의 인덱스 후보
EXPLAIN SELECT * FROM product
WHERE MATCH(product_name) AGAINST('+keyword*' IN BOOLEAN MODE)
AND status = 'OPEN';

Untitled

⇒ possible_keys에서 가능한 인덱스 테이블(product_status_index,product_name)을 확인 할 수 있었지만

DB가 판단 했을 때 더 성능 상 이점이 있다고 판단한 productname(fulltext 타입) 의 인덱스로 선택 됨.