MYSQL中监控参数的示例分析

发布时间:2022-01-14 15:40:07 作者:小新
来源:亿速云 阅读:122

这篇文章主要介绍了MYSQL中监控参数的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

问:怎么监控InnoDB日志缓冲区,设置的是否合适

当在MySQL中对InnoDB表进行更改时,这些更改首先存储在InnoDB日志缓冲区的内存中,然后写入InnoDB日志文件,这些文件通常被称为重做日志。而如果有迹象表明innodb_log_buffer_size变量设置得太低,那么可以调整它来优化性能。

在调整之前,首先要知道当前的 innodb log buffer 到底使用了多少,我们可以使用下面的方法来进行监控

select count from information_schema.innodb_metrics where name ='log_lsn_current'; 

select count from information_schema.innodb_metrics where name ='log_lsn_last_flush' ;

将两个值相减,就能得到当前有多少 lsn 还没有刷入到磁盘,也就得到 innodb log buffer 使用情况。

从上边的使用量上看,进行一个时间段的评估就能知道这个服务器对应的配置是否合适。

问:在接手一个MYSQL 系统后(半路来的),你怎么快速的通过监控来知道这个系统的关于 page  merge  page splits 的情况, 到最终的整体系统设计十分OK?  (仅作为参考和发现问题使用)

首先我们要有一个共同的共识,数据库处理数据都是在内存中处理的,而数据在内存中处理不是按照 ROW 而是按照 page 的方式来处理的。用表和行来组织数据时,InnoDB用分支、页面和记录来组织数据。记住InnoDB不能在单行的基础上工作是非常重要的。InnoDB总是对页面进行操作。加载页面后,它将扫描页面以查找请求的行/记录。

根据MERGE_THRESHOLD的值的配置情况,我们需要了解到 mysql 整体的页合并和页分离的情况。

一般来说merge_threshold 设置时 50% , 而太小的 merge_threshold 会导致在整体数据量不变化的情况下,整体的数据占用空间变大,相对的就是内存的占用会变大。 

所以监控也的merge 和 split  是查看当前的 merge_threshold 十分合适以及系统整体的运行情况的一个指标(例如这个系统设计的,都是物理删,没有逻辑删,或经常UPDATE 的字段原先小,UPDATE 后都变得很大),这样的情况

就需要看

index page merge attempts  &  index page merge successful 以及 splits

MYSQL中监控参数的示例分析

频繁的 merge 和 splits 本身就对数据库是一种性能上的影响,并且在操作过程中会影响 DML的相关操作。

另外借一篇国外文章中关于主键设计的对于页分割的影响来看,设计有缺陷的INNODB 的主键表,页splits 的操作数要比正常的,多2倍或更多。

MYSQL中监控参数的示例分析

通过这个问题,通过这个问题还可以导引出,在MYSQL 中过多的索引并由于表当初的设计的问题,会导致更差的性能问题,所以针对MYSQL 表的设对比其他的数据库设计要更严谨。

感谢你能够认真阅读完这篇文章,希望小编分享的“MYSQL中监控参数的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. MySQL中slave_exec_mode参数的示例分析
  2. vue中组件参数的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:MySQL InnoDB的select和update形成表级锁实例分析

下一篇:springboot整合quartz定时任务框架的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》