23. MySQL 실행계획 Impossible WHERE noticed after reading const tables 추가
MySQL Ver. 5.x 부터 실행계획을 추출할때,
>explain SELECT * FROM `XXX` WHERE xxx = '187063691';
+———+——————+———+———+———————+———+————+———+———+——————————————————————————+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+———+——————+———+———+———————+———+————+———+———+——————————————————————————+
| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Impossible WHERE noticed after reading const tables |
+———+——————+———+———+———————+———+————+———+———+——————————————————————————+
위와 같은 실행계획 정보를 확인할 수가 있다.
Impossible이라는 내용 때문에 조금 놀랄 수 있으나, 이건 아주 정상적인 상황을 이야기 하는 실행계획이다.
실행계획을 보려고 하는 쿼리가 const 타입으로 풀어서 실행계획을 보고자 할때, 찾을 수 있는 데이터가 없는 경우에 위와 같은 결과가 보이게 되는 것이다.
즉, 해당 쿼리로 추출 할 데이터가 없는 경우에 발생하는 것이다.