数据库学习之MySQL性能指标及计算方法
小职 2020-12-04 来源 : 阅读 1081 评论 0

摘要:本篇住要介绍了Mysql性能指标以及计算方法,希望对大数据数据库的学习有所帮助。

本篇住要介绍了Mysql性能指标以及计算方法,希望对大数据数据库的学习有所帮助。

数据库学习之MySQL性能指标及计算方法


绝大多数MySQL性能指标可以通过以下两种方式获取:

(1)mysqladmin

使用mysqladmin extended-status命令获得的MySQL的性能指标,默认为累计值。如果想了解当前状态,需要进行差值计算;加上参数 --relative(-r),就可以看到各个指标的差值,配合参数--sleep(-i)就可以指定刷新的频率。

数据库学习之MySQL性能指标及计算方法

数据库学习之MySQL性能指标及计算方法

(2)Show global status

可以列出MySQL服务器运行各种状态值,累计值。

数据库学习之MySQL性能指标及计算方法

mysqladmin extended-status命令及show global status得到的指标项特别多。实际应用中,重点关注以下性能指标:


tps/qps

tps: Transactions Per Second,每秒事务数;

qps: Queries Per Second每秒查询数;

通常有两种方法计算tps/qps:

方法1:

基于 com_commit、com_rollback 计算tps,基于 questions 计算qps。

TPS = Com_commit/s + Com_rollback/s

其中,

Com_commit /s= mysqladmin extended-status --relative --sleep=1|grep -w 

Com_commit

Com_rollback/s = mysqladmin extended-status --relative --sleep=1|grep 

-w Com_rollback

QPS 是指MySQL Server 每秒执行的Query总量,通过Questions (客户的查询数目)状态值每秒内的变化量来近似表示,所以有:

QPS = mysqladmin extended-status --relative --sleep=1|grep -w Questions

仿照上面的方法还可以得到,mysql每秒select、insert、update、delete的次数等,如:

Com_select/s = mysqladmin extended-status --relative --sleep=1|grep -w 

Com_select

Com_select/s:平均每秒select语句执行次数

Com_insert/s:平均每秒insert语句执行次数Com_update/s:平均每秒update语句执行次数Com_delete/s:平均每秒delete语句执行次数


方法2:

基于com_%计算tps ,qps

tps= Com_insert/s + Com_update/s + Com_delete/s

qps=Com_select/s + Com_insert/s + Com_update/s + Com_delete/s

线程状态

* threads_running:

当前正处于激活状态的线程个数


* threads_connected:

当前连接的线程的个数


### 流量状态

* Bytes_received/s:

平均每秒从所有客户端接收到的字节数,单位KB


* Bytes_sent/s:

平均每秒发送给所有客户端的字节数,单位KB

innodb文件读写次数

* innodb_data_reads:

innodb平均每秒从文件中读取的次数


* innodb_data_writes:

innodb平均每秒从文件中写入的次数


* innodb_data_fsyncs:

innodb平均每秒进行fsync()操作的次数

innodb读写量

* innodb_data_read:

innodb平均每秒钟读取的数据量,单位为KB


* innodb_data_written:

innodb平均每秒钟写入的数据量,单位为KB

innodb缓冲池状态

* innodb_buffer_pool_reads: 

平均每秒从物理磁盘读取页的次数 


* innodb_buffer_pool_read_requests: 
平均每秒从innodb缓冲池的读次数(逻辑读请求数)


* innodb_buffer_pool_write_requests: 

平均每秒向innodb缓冲池的写次数


* innodb_buffer_pool_pages_dirty: 
平均每秒innodb缓存池中脏页的数目


* innodb_buffer_pool_pages_flushed: 
* innodb_buffer_read_hit_ratio = ( 1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100innodb缓冲池的读命中率


* Innodb_buffer_usage = ( 1 - Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total) * 100Innodb缓冲池的利用率

innodb日志

innodb_os_log_fsyncs: 

平均每秒向日志文件完成的fsync()写数量


innodb_os_log_written: 

平均每秒写入日志文件的字节数


innodb_log_writes: 

平均每秒向日志文件的物理写次数


innodb_log_write_requests: 

平均每秒日志写请求数

innodb行

innodb_rows_deleted: 

平均每秒从innodb表删除的行数


innodb_rows_inserted: 

平均每秒从innodb表插入的行数


innodb_rows_read: 

平均每秒从innodb表读取的行数


innodb_rows_updated: 

平均每秒从innodb表更新的行数


innodb_row_lock_waits: 

一行锁定必须等待的时间数


innodb_row_lock_time:

 行锁定花费的总时间,单位毫秒


innodb_row_lock_time_avg: 

行锁定的平均时间,单位毫秒

MyISAM读写次数

key_read_requests: 

MyISAM平均每秒钟从缓冲池中的读取次数


Key_write_requests:

 MyISAM平均每秒钟从缓冲池中的写入次数


key_reads : 

MyISAM平均每秒钟从硬盘上读取的次数


key_writes : 

MyISAM平均每秒钟从硬盘上写入的次数

MyISAM缓冲池

MyISAM平均每秒key buffer利用率Key_usage_ratio =Key_blocks_used/(Key_blocks_used+Key_blocks_unused)*100


MyISAM平均每秒key buffer读命中率Key_read_hit_ratio=(1-Key_reads/Key_read_requests)*100


MyISAM平均每秒key buffer写命中率Key_write_hit_ratio =(1-Key_writes/Key_write_requests)*100

临时表

Created_tmp_disk_tables:

 服务器执行语句时在硬盘上自动创建的临时表的数量


Created_tmp_tables: 

服务器执行语句时自动创建的内存中的临时表的数量


Created_tmp_disk_tables/Created_tmp_tables比值最好不要超过10%,如果Created_tmp_tables值比较大,可能是排序句子过多或者连接句子不够优化

其他

slow_queries: 

执行时间超过long_query_time秒的查询的个数(重要)


sort_rows: 

已经排序的行数


open_files:

 打开的文件的数目


open_tables: 

当前打开的表的数量


select_scan:

 对第一个表进行完全扫描的联接的数量

此外,还有一些性能指标不能通过mysqladmin extended-status或show global status直接得到,但是十分重要。


response time: 响应时间

Percona提供了tcprstat工具统计响应时间,此功能默认是关闭的,可以通过设置参数query_response_time_stats=1打开这个功能。

有两种方法查看响应时间:

(1)通过命令SHOW QUERY_RESPONSE_TIME查看响应时间统计;

(2)通过INFORMATION_SCHEMA里面的表QUERY_RESPONSE_TIME来查看。


Slave delay: 备库延迟

可以在slave节点上执行show slave status\G命令,Seconds_Behind_Master项的值即为slave当前的延时量,单位秒。

数据库学习之MySQL性能指标及计算方法



关注“职坐标在线”(Zhizuobiao_Online)公众号,免费获取源码资料、技术就业咨询。

数据库学习之MySQL性能指标及计算方法

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程