数据库常见性能指标
TPS:每秒事务数
QPS:每秒查询数
连接数
查询吞吐量
查询执行性能
查询缓存
【名词解释】
事务:
- 增、删、改,称之为DML语句,统称为“事务”
- 但这些事务不是立即生效,需要主动commit,这些DML语句就会同时提交或同时回滚,彼此之间绑定成一个整体,一荣俱荣,一损俱损
TPS(数据库每秒处理的事务数)
- 事务:指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,从此来计算使用的时间和完成的事务个数
- MySQL本身没有直接提供TPS参数值。根据MySQL数据库提供的状态变量,来计算TPS
- Com_commit提交次数
- Com_rollback回滚次数
- 第一次获取
- 第二次获取
- TPS=(c_r2-c_r1)/(t2-t1) – t1与t2生命周期之间的平均TPS
QPS(Query Per Second)每秒请求次数
- 数据库每秒执行的SQL数量,包含insert、select、update、delete等
- MySQL数据库本身已经提供了这个QPS指标值
- QPS=Questions/Uptime 即可得到该指标的值
- myspl> show global status like ‘Questions’;
- mysql> show global status like ‘Uptime’;
连接数:
- MySQL_Connections 数据库连接数分为Max Connections(最大连接数),Max Used
Connections(最近期间使用的最大连接数)和Connections(实时连接数) - 连接数是可以改的,但并不是越大越好,项目中要实际去调试
查询吞吐量:
- MySQL有一个名为Questions的内部计算器(根据MySQL用语,这是一个服务器状态变量),客户端每发送一个查询语句,其值就会加一
查询执行性能:
- MySQL还提供了一个Slow_queries计数器(慢查询计数器),每当查询的执行时间超过long_query_time参数指定的值之后,该计数器就会增加。建议设置临界值为1秒
查询缓存:
- MySQL默认的存储引擎InnoDB使用了一片称为缓冲池的内存区域,用于缓存数据表与索引的数据。缓冲池指标属于资源指标,而非工作指标,前者更多地用于检查(而非检测)性能问题。如果数据库性能开始下滑,而磁盘I/O在不断攀升,扩大缓冲池往往能带来性能回升。(不用过多关注,MySQL自己会处理)
关键的InnoDB缓冲池指标:
- MySQL提供了许多关于缓冲池及其利用率的指标
- Innodb_buffer_pool_size:主要作用是缓存innodb表的索引,数据,插入数据时的缓冲
- 指标Innodb_buffer_pool_read_requests及Innodb_buffer_pool_reads对于理解缓冲池利用率都非常关键。Innodb_buffer_pool_read_requests追踪合理读取请求的数量,而Innodb_buffer_pool_reads追踪缓冲池无法满足,因而只能从磁盘读取的请求数量