日期:2014-05-16  浏览次数:20767 次

mysql 查看索引使用情况
这是以读为主的线上库

root@read 02:28:07>show status like ‘Handler_read%’;  
+———————–+——-+  
| Variable_name         | Value |  
+———————–+——-+  
| Handler_read_first    | 0     |  
| Handler_read_key      | 0     |  
| Handler_read_next     | 0     |  
| Handler_read_prev     | 0     |  
| Handler_read_rnd      | 0     |  
| Handler_read_rnd_next | 61    |  
+———————–+——-+  
6 rows in set (0.41 sec) 


Handler_read_first 代表读取索引头的次数,如果这个值很高,说明全索引扫描很多。

Handler_read_key代表一个索引被使用的次数,如果我们新增加一个索引,可以查看Handler_read_key是否有增加,如果有增加,说明sql用到索引。

Handler_read_next 代表读取索引的下列,一般发生range scan。

Handler_read_prev 代表读取索引的上列,一般发生在ORDER BY … DESC。

Handler_read_rnd 代表在固定位置读取行,如果这个值很高,说明对大量结果集进行了排序、进行了全表扫描、关联查询没有用到合适的KEY。

Handler_read_rnd_next 代表进行了很多表扫描,查询性能低下。