千家信息网

MySQL数据库监控项的示例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章将为大家详细讲解有关MySQL数据库监控项的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。监控项目MYSQL.QPSMYSQL.TPSMYSQL.R
千家信息网最后更新 2026年10月31日MySQL数据库监控项的示例分析

这篇文章将为大家详细讲解有关MySQL数据库监控项的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

监控项目
MYSQL.QPS
MYSQL.TPS
MYSQL.READS
MYSQL.WRITES
MYSQL.RWRATIO
MYSQL.KEY_BUFFER_READ_HITS
MYSQL.KEY_BUFFER_WRITE_HITS
MYSQL.QUERY_CACHE_HITS
MYSQL.INNODB_BUFFER_READ_HITS
MYSQL.THREAD_CACHE_HITS
MYSQL.SLOW_QUERIES_PER_SECOND
MYSQL.TEMP_TABLES_TO_DISK_RATIO
MYSQL.TMP_DISK_TABLES_PER_SECOND
MYSQL.SELECT_FULL_JOIN
MYSQL.SELECT_FULL_JOIN_IN_ALL_SELECT
MYSQL.CONNECTIONS
MYSQL.CONNECTION_TIME
MYSQL.INNODB_ROW_LOCK_CURRENT_WAITS
MYSQL.PROCESS_OF_MYSQLD
MYSQL.HA_STATUS
MYSQL.SLAVE_STATUS
MYSQL.TCP_COUNT
MYSQL.TCP_AVG
MYSQL.TCP_MAX
MYSQL.SLAVE_DELAYS


一.MYSQL.QPS
定义:QPS 实际上是指 MySQL Server过去10秒平均每秒执行的 Query总量(包括show .select,set names,set global 等等);
计算公式:QPS=questions(当前值)-questions(10秒前的值)/10
是否保留:是
报警阀值:视各个业务情况(主要是query的复杂度)及服务器配置设置.大部分设置为10000.
报警类型:大于10000 严重.大于12000 灾难


二.MYSQL.TPS
定义:TPS指每秒向mysql sever提交的修改(包含update.insert.delete.replace);
老的计算方式:
T1=Handler_commit+Handler_rollback (均为当前值)
T2= Handler _commit+ Handler _rollback (均为10s之前值)
TPS=T1-T2/10
新的计算方式:
T1= Com_insert+ Com_replace+Com_delete+Com_update (均为当前值)
T2= Com_insert+ Com_replace+Com_delete+Com_update (均为10s之前值)
TPS=T1-T2/10
是否保留:是
报警阀值:视各个业务情况及服务器配置设置.大部分设置为4000.
报警类型:大于4000严重.大于6000 灾难


三.MYSQL.READS
定义:READS指每秒向msyql sever提交的读请求次数(仅指select);
计算公式:
R1=com_select+ qcache_hits (均为当前值)
R2=com_select+ qcache_hits (均为10秒前的值)
READS=R1-R2/10
是否保留:是
报警阀值:


四.MYSQL.WRITES
定义:WRITERS 指每秒向mysql server提交的写请求次数:
计算公式:
W1=com_insert+com_delete+com_update (均为当前值)
W2=com_insert+com_delete+com_update (均为10s之前的值)
WRITES=W1-W2/10
是否保留:不保留
去除原因:这个监控选项和tps重复.


五.MYSQL.RWRATIO
定义:RWRATIO指自mysql server启动以来的读写比例.注意这里不是以10s前后来衡量的;
计算公式:
R= com_select+ qcache_hits (均为当前值)
W= com_insert+ com_delete+ com_update+ com_replace (均为当前值)
RWRATIO=R/W (得出值保留小数点前的值)
是否保留:不保留
去除原因:这个监控选项可以间接通过mysql.reads和mysql.tps计算出来.无需另外设置监控项。


六.MYSQL.KEY_BUFFER_READ_HITS
定义:KEY_BUFFER_READ_HITS 指myisam引擎向key buffer读命中率的情况.这个buffer用来存储myisam的索引key;
计算公式:
KEY_BUFFER_READ_HITS=(1-( key_reads/ key_read_requests))*100% (均为当前值)
(得出值保留小数点前的值)
是否保留:不建议保留
去除原因:现在只有sso和酒仙桥cms是myisam引擎.后续项目全部采用innodb.且这两个项目会在合适时机会全部转换为innodb。且目前这个2个项目数据压力稳定.或者暂时只监控这2个业务.更换引擎后在删除此监控项。


七.MYSQL.KEY_BUFFER_WRITE_HITS
定义:KEY_BUFFER_WRITE_HIT 指myisam引擎向key buffer写入命中率的情况;
计算公式:
KEY_BUFFER_WRITE_HIT =(1-(key_writes/key_write_requests))*100 (均为当前值)
(得出值保留小数点前的值).
是否保留:不建议保留
去除原因: 这个监控项只能体现myisam的命中率.myisam在未来项目中将会被淘汰.另外也没有必要专门监控mysiam的write命中情况.关注key buffer的总体命中情况.更有意义。


八.MYSQL.QUERY_CACHE_HITS
定义:QUERY_CACHE_HITS指查询缓存的命中率情况.值越高代表query cache作用越大.从而降低引擎压力.在mysql server层返回用户结果;
计算公式:
QUERY_CACHE_HITS =qcache_hits/( qcache_hits+ qcache_inserts) *100% (均为的当前值)
(得出值保留小数点前的值).
是否保留:不建议保留
去除原因: 线上关键业务的修改量都比较大.而且操作query cache是一个global lock.导致 经常发生sql 停留在Waiting for query cache lock和失效query cache的状态。另外.一个业务如果超过95%的sql是select.才建议打开query cache。


九.MYSQL.INNODB_BUFFER_READ_HITS
定义:INNODB_BUFFER_READ_HITS.极为重要的一个状态值.反应innodb引擎所需数据在内存中的命中的情况。
计算公式:
INNODB_BUFFER_READ_HITS=(1-(innodb_buffer_pool_reads/innodb_buffer_pool_read_requests))*100% (均为当前值)(得出值保留小数点前的值).
是否保留:保留
报警阀值:小于95%
报警类型:小于95% 警告


十.MYSQL.THREAD_CACHE_HITS
定义:THREAD_CACHE_HITS=( 1-( threads_created/ connections))*100% (均为当前值)
(得出值保留小数点前的值).
是否保留:保留
报警阀值:小于90%
报警类型:小于90% 警告


十一.MYSQL.SLOW_QUERIES_PER_SECOND
定义:SLOW_QUERIES_PER_SECOND 指每过去10秒平均每秒产生的slow log的总量;
计算公式:
SLOW_QUERIES_PER_SECOND = Slow_queries(当前值)- Slow_queries(10秒之前的值)/10
是否保留:保留
报警阀值:
报警类型:



十二.MYSQL.TEMP_TABLES_TO_DISK_RATIO
定义:TEMP_TABLES_TO_DISK_RATIO指在硬盘上创建临时表的几率,越小越好.代表临时表都创建在内存中。
计算公式:
TEMP_TABLES_TO_DISK_RATIO=(created_tmp_disk_tables/ created_tmp_tables)*100%
(均为当前值)(得出值保留小数点前的值).
是否保留:不建议保留
去除原因:了解sql性能是否存在问题.不应该仅关注这个比率.一条性能很差的sql产生磁盘临时表对性能的影响可能比100条产生内存临时表的sql大很多。应该积极关注慢查询中那些执行时间非常长sql。


十三.MYSQL.TMP_DISK_TABLES_PER_SECOND
定义:TMP_DISK_TABLES_PER_SECOND 指过去10秒内每秒创建磁盘临时表的数量;
计算公式:
TMP_DISK_TABLES_PER_SECOND=created_tmp_disk_tables(当前值)-created_tmp_disk_tables(10秒之前的值)/10
是否保留:建议保留
报警阀值:
报警类型:


十四.MYSQL.SELECT_FULL_JOIN
定义:SELECT_FULL_JOIN 指每秒执行full join的总量.这个参数一般发生在join过程中没有使用索引的情况;
计算公式:
SELECT_FULL_JOIN= Select_full_join( 当前值)- Select_full_join(10秒之前的值)/10
是否保留:不建议保留
去除原因:并不是没有利用索引的join性能就很差.对于不合理的sql.如果带来性能影响.可以打开慢查询根据进行调优.full join可能只是其中一个原因。 一些小表的full join对性能冲击很小。


十五.MYSQL.SELECT_FULL_JOIN_IN_ALL_SELECT
定义:SELECT_FULL_JOIN_IN_ALL_SELECT 指过去10秒钟里面.full join占总select的比例;
计算公式:
S1= select_full_join(当前值)- select_full_join(10秒之前的值)
S2= com_select(当前值)- com_select(10秒之前的值)
SELECT_FULL_JOIN_IN_ALL_SELECT=s1/s2*100%(得出值保留小数点前的值).
是否保留:不建议保留
去除原因:理由同上


十六.MYSQL.CONNECTIONS
定义:CONNECTIONS指自mysql server启动以来一共产生的连接数.这个值不能反映当前连接数.建议用Threads_connected 来衡量;
新的计算方式:CONNECTIONS= Threads_connected (当前值)
是否保留:保留
报警阀值:800
报警类型:大于800 严重.大于1500 灾难


十七.MYSQL.CONNECTION_TIME
定义:从mysql server所在服务器上发送一个简单的查询所需要的时间。
是否保留:不建议保留
去除原因:tcp_average比此参数更具参考价值.因为这个time是朝服务器本身发送请求.而tcp average关注的是应用ip向db server统计出来的时间。


十八.MYSQL.INNODB_ROW_LOCK_CURRENT_WAITS (新增)
定义:INNODB_ROW_LOCK_CURRENT_WAITS.因为公司大部分引擎都是innodb.所以有必要监控innodb行锁的等待情况.状态值反应了过去10秒有几个sql处于等待row lock的状态。
计算公式:INNODB_ROW_LOCK_CURRENT_WAITS= Innodb_row_lock_current_waits(当前值)
是否保留:保留
报警阀值:无
报警类型:无



十九.MYSQL.PROCESS_OF_MYSQLD
定义:process_of_mysqld用来监控mysqld的进程数.如果返回0.表示mysqld进程挂掉。
是否保留:保留
报警阀值:为0则报警
报警类型:灾难


二十.MYSQL.HA_STATUS
定义:ha_status用来监控MHA进程是否存在.如果返回0.表示由于MHA的切换导致MHA自动退出.或者MHA服务没有启动。
是否保留:保留
报警阀值:为0则报警
报警类型:严重




二十一.MYSQL.SLAVE_STATUS
定义:mysql.slave_status用来监控slave的io thread和sql thread.如果任意一个线程的状态为no.则返回0.否则返回1。
是否保留:保留
报警阀值:为0则报警
报警类型: 严重


二十二: MYSQL.TCP_COUNT
定义:利用percona的tcprstat从底层探测平均每秒发送到mysql server的请求数.而不是在mysql server的内部进行统计。
是否保留:不建议保留
去除原因:这个监控的结果和qps的数目一致.重复监控


二十三:MYSQL.TCP_AVG
定义:每秒内发送到mysql server所有请求的平均响应时间.此值大.表明mysql server异常.对请求做出响应的时间过长。单位为微妙。
是否保留:保留
报警阀值:无
报警类型:无


二十四:MYSQL.TCP_MAX
定义:过去一秒内.发送到mysql server所有请求中响应时间最长的请求所花费的时间。单位为微妙。
是否保留:保留
报警阀值:无
报警类型:无


二十一.MYSQL.SLAVE_DELAYS
定义:mysql.slave_delay用来监控slave的sql thread同步master是否有延迟.如果有.返回延迟的秒数.如果没有延迟.返回空
是否保留:保留
报警阀值:1200
报警类型:大于1200 严重.大于3600 灾难

关于"MySQL数据库监控项的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

报警 监控 报警阀 公式 类型 原因 建议 情况 小数 小数点 引擎 时间 性能 业务 灾难 状态 项目 服务 数据 命中率 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 重生之互联网科技帝国 互联网科技公司税收优惠 中国 科技 互联网 深圳互联网络科技有限公司 以房互联网科技 浩特互联网科技 多迪互联网科技有限公司 互联网科技公司招聘 成都玖崟互联网科技有限公司乐商圈怎么样 互联网科技与管理 互联网媒体平台算高科技产业 佛山市翊博互联网络科技有限公司 互联网科技圈年度人物 科技互联网的核心竞争力 山东星卡互联网科技有限公司官网 有人说阿里系是互联网科技企业 工业互联网科技创业 扫呗互联网科技有限公司 六子台科技互联网展会 美国互联网科技 互联网科技股票 奇酷互联网络科技公司 壕鑫互联网络科技 上海电发互联网科技有限公司 宜昌元轩互联网科技有限公司 北京军民互联网科技公司 互联网高科技绘画 伍佰万互联网科技是干嘛的 高科技和互联网的现代国家
0