mysql> explain select * from ABCD where number != '' and t_number != '1' and local = '13' order by adtime desc limit 0, 20;
+----+-------------+----------+-------+--------------------+------------+---------+------+--------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+----------+-------+--------------------+------------+---------+------+--------+-----------------------------+
| 1 | SIMPLE | ABCD | range | PRIMARY,t_number | t_number | 4 | NULL | 161573 | Using where; Using filesort |
+----+-------------+----------+-------+--------------------+------------+---------+------+--------+-----------------------------+
위와 같은 결과물에서 query 속도와 관게하여 궁금한 점이 있습니다.
1. "select_type 은 SIMPLE" : SIMPLE이 무슨 의미죠?
2. "type은 range" : 이것은 무슨 의미인지요?
3. possible_keys 이 항목은 index키와 관계된것을 말하는 곳인가요? 그렇다면 index를 잘 탄 것 같은데요.
4. Extra 이부분이 젤 궁금한데요.
Using where : 즉 제가 사용한 query에서 where 조건문을 잘 사용했다(index키가 먹었다)는 것인가요?
Using filesort : 찾아보니 Using filesort이 일어나면 order by 절에서 index키가 않먹은 것으로 query에 속도저하등의 영향을 미친다고 하는데요, 그런가요?
참고로 where 절 및 order절에 사용한 필드는 전부 index키로 잡혀져 있구요, 그 중 number가 primary키 입니다.
해석 좀 해주세요~
|