MySQL数据库的吞吐量可以用tps或qps来表示。
解释(来源):
QPS(Queries Per Second): 查询量/秒,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理查询量多少的衡量标准。
TPS(Transactions Per Second): 事务数/秒,是一台数据库服务器在单位时间内处理的事务的个数。
一、tps计算
tps = (Com_commit + Com_rollback) / Uptime
其中Com_commit是已提交事务数目,Com_rollback是回滚的事务数目,Uptime是运行时间。
获取方式:show global status like "Com_commit"; 另外两个同样。
eg:通过查看show global status得到commit为132842, rollback为435, Uptime为364,则:
tps = (132842 + 435) / 364 = 366.14560439560439560440
二、qps计算
两种计算方式
1、基于Questions计算
qps = Questions / Uptime
eg:通过查看show global status得到Questions为2417815,Uptime为364,则:
qps = 2417815 / 364 = 6642.34890109890109890110
注意到mysql的status里面还有个Queries: 2417824,比Questions大一点,这两个的区别:
Queries:这个状态变量表示,mysql系统接收的查询的次数,包括存储过程内部的查询
Questions:这个状态变量表示,mysql系统接收查询的次数,但是不包括存储过程内部的查询
所以用Questions而不是Queries
2、基于增删改查计算
qps = (Com_insert + Com_delete + Com_update + Com_select) / Uptime
eg:通过查看show global status得到四个统计分别为:495843、 34070、 633271、 1121204,Uptime为364,则:
qps = (495843+ 34070+ 633271 +1121204) / 364 = 6275.791208791209
经比较两种计算qps的方式,发现第一种得出的值比较大,原因是Questions不仅统计了增删改查的数目,还统计了一些类似show命令之类的其他查询。