cfanbo / cfanbo.github.io

1 stars 0 forks source link

mysql中的handler_read_% | 学习笔记 #183

Open cfanbo opened 1 year ago

cfanbo commented 1 year ago

https://blog.haohtml.com/archives/17358/

mysql> show status like ‘handlerread%’; +———————–+——-+ | Variable_name | Value | +———————–+——-+ | Handler_read_first | 1 | | Handler_read_key | 1 | | Handler_read_last | 0 | | Handler_read_next | 0 | | Handler_read_prev | 0 | | Handler_read_rnd | 0 | | Handler_read_rnd_next | 21 | +———————–+——-+ 7 rows in set (0.01 sec) 如上所示,mysql中关于read的计数器,有7个。他们的数值对于系统的状况的了解,对于系统的调优都十分重要。我们应该理解他们的含义。本文是自己的一些理解。 首先7个计数器,我们应该分为两部分: 1)对索引读的计数器:前面的5个都是对索引读情况的计数器, Handler_read_first:是指读索引的第一项(的次数); Handler_read_key:是指读索引的某一项(的次数); Handler_read_next:是指读索引的下一项(的次数); Handler_read_last:是指读索引的最后第一项(的次数); Handler_read_prev:是指读索引的前一项(的次数); 5者应该有四种组合: Handler_read_first 和 Handler_read_next 组合应该是索引覆盖扫描 Handler_read_key 基于索引取值 Handler_read_key 和 Handler_read_next 组合应该是索引范围扫描 Handler_read_last 和 Handler_read_prev 组合应该是索引范围扫描(orde by desc) 2)对数据文件的计数器:后面的2个都是对数据文件读情况的计数器, Handler_read_rnd: The number of requests to read a row based on a fixed position.