霜天部落 | 关注LAMP高性能、高并发架构的设计与研究

MySQL性能优化之索引工作情况

如果索引正在工作, Handler_read_key 的值将很高,这个值代表了一个行被索引值读的次数,很低的值表明增加索引得到的性能改善不高,因为索引并不经常使用。

Handler_read_rnd_next 的 值高则意味着查询运行低效,并且应该建立索引补救。这个值的含义是在数据文件中读下一行的请求数。如果正进行大量的表扫描, Handler_read_rnd_next 的 值较高,则通常说明表索引不正确或写入的查询没有利用索引,具体如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> show status like ‘Handler_read%;

+———————–+——-+
| Variable_name | Value |
+———————–+——-+
| Handler_read_first | 0 |
| Handler_read_key | 5 |
| Handler_read_next | 0 |
| Handler_read_prev | 0 |
| Handler_read_rnd | 0 |
| Handler_read_rnd_next | 2055 |
+———————–+——-+

6 rows in set (0.00 sec)

从上面的例子中可以看出,目前使用的 MySQL 数据库的索引情况并不理想。