MySQL源代码:为MySQL增加响应时间status值

2014-11-24 12:51:48 · 作者: · 浏览: 2

实现的思路很简单,借助了percona server5.5的information_schema表:query_response_time


过程


1.增加变量,记录上次查询rt时,统计的query数,以及总时间(last_count, last_total)




2.采集sql执行时间时(collect函数),累加当前query数,执行总时间(cur_count, cur_total)


3.计算一段时间内rt: (cur_total - last_total)/(cur_count - last_count)


4.设置last_total = cur_total, last_count =cur_count;


5.循环到2)




增加一个新status值,命名有点挫...


root@(none) 02:17:21>show status like 'rt_from_last_query%';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| rt_from_last_query | 192 |
+--------------------+-------+
1 row in set (0.00 sec)




注意这个patch理论上会有额外的开销,因为多计算了两个值(cur_count,cur_total)。




以下是patch,基于percona 5.5.18