【MySQL进阶之路】生产案例:大量数据刷盘导致的数据库性能抖动问题优化

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送!

在我后台回复 「资料」 可领取编程高频电子书
在我后台回复「面试」可领取硬核面试笔记

文章导读地址:点击查看文章导读!

感谢你的关注!

在这里插入图片描述

先说一下这次 数据库性能抖动的现象 :当有数据进行更新、插入的时候,一般情况下可能几十毫秒就完成了,但是却出现了执行了几秒才完成的现象

造成这个问题的原因: 就是大量数据刷盘从而导致该 SQL 执行时间很长

我们知道,在 MySQL 中,对数据进行更新会先在 BufferPool 中更新,之后会将修改操作写入 redo log 日志文件中去

写 redo log 日志文件的过程就是,在 MySQL 的默认配置下,会有一个存储 redo log 的目录,里边有两个 redo log 磁盘日志文件,每个文件的大小为 48MB,那么当第一个 redo log 磁盘文件写满之后,会去写第二个 redo log 磁盘文件,当第二个 redo log 磁盘文件写满之后,又会去覆盖第一个 redo log 磁盘文件中的数据

那么当更新数据的时候,恰好碰到了第二个 redo log 磁盘文件写满的情况,此时会去覆盖第一个 redo log 磁盘文件中的数据,如果此时第一个 redo log 磁盘文件中有一些更新的数据还没有刷到磁盘中去的话,就会先将这部分数据页给刷到磁盘中去,如果这部分数据很多的话,就会导致花费比较长的时间

1707470194898

那么经过以上分析,性能抖动的原因找到了,如何解决呢?

解决思路就是:让 MySQL 尽量快地将数据从内存给刷到磁盘中去

让部署数据库机器的磁盘使用 SSD 固态硬盘,之后使用 fio 工具来对部署数据库的机器的 SSD 固态硬盘每秒钟最多能承载磁盘 IO 次数做一个测试,测试出来每秒最多的磁盘 IO 次数之后,可以将这个值设置给 MySQL 的参数:innodb_io_capacity,通过设置这个参数,可以让数据库以最大速率将缓存页刷到磁盘中去

可以使用 fio 工具来对部署数据库的机器的 SSD 固态硬盘每秒钟最多能承载磁盘 IO 次数做一个测试,测试出来每秒最多的磁盘 IO 次数之后,可以将这个值设置给 MySQL 的参数:innodb_io_capacity,尽可能让数据库以最大速率进行刷盘操作,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/465851.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VUE前端实现token的无感刷新

前言 说实话,这个其实没啥好讲的,要说有复杂度的话,也主要是在后端。 实现token无感刷新对于前端来说是一项十分常用的技术,其本质都是为了优化用户体验,当token过期时不需要用户调回登录页重新登录,而是…

【EAI 016】VIMA: General Robot Manipulation with Multimodal Prompts

论文标题:VIMA: General Robot Manipulation with Multimodal Prompts 论文作者:Yunfan Jiang, Agrim Gupta, Zichen Zhang, Guanzhi Wang, Yongqiang Dou, Yanjun Chen, Li Fei-Fei, Anima Anandkumar, Yuke Zhu, Linxi Fan 作者单位:Stanfo…

springboot179基于javaweb的流浪宠物管理系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

nba2k24 韩旭面补

nba2k23-24 韩旭面补 nba2k23-nba2k24通用 韩旭面补 下载地址: https://www.changyouzuhao.cn/9605.html

【开源】JAVA+Vue.js实现森林火灾预警系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 系统基础模块2.3 烟雾传感器模块2.4 温度传感器模块2.5 历史记录模块2.6 园区数据模块 三、系统设计3.1 用例设计3.1.1 森林园区基础系统用例设计3.1.2 森林预警数据用例设计 3.2 数据库设计3.2.1 烟雾…

车载电子电器架构 —— 网络拓扑开发概述

车载电子电器架构 —— 网络拓扑开发概述 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

闭环控制系统手自动策略(车辆定速巡航应用)

闭环控制系统的手自动策略并不会完全一样,不同的行业,基于不同的规范和安全考虑给出的手自动策略是不一样的,这里我们介绍汽车行业定速巡航应用。 PID闭环控制系统手自动切换的相关文章,还可以查看下面链接: 无扰切换…

详细介绍Python网络编程模块

根据前面对网络分层棋型的介绍,我们知道实际的网络模型大致分为四层,这四层各有对应的网络协议提供支持, 网络层协议主要是 IP,它是所有互联网协议的基础,其中 ICMP(Internet Control Message Protocol&…

【教程】autojs使用zxing扫描条形码和二维码实现烟草价格扫码查询

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 这原本是这位大佬发的(autojs调用zxing实现扫码功能_autojs扫码插件),略微修改了一下,方便自己的代码直接调用。这里可以下载没有改动的源码:Autojs调用zxing实现条形码与二维码…

【XR806开发板试用】轻松连上华为云实现物联网

本文为极术社区XR806试用活动文章。 一.开始 偶然的机会在网上看到了鸿蒙开发板的试用,作为一个"老鸿蒙"岂能放弃这个机会,报名之后不出意料地得到了使用名额,在此感谢极术社区. 收到开发板之后其实还有点失望了,就那么一个小小的核心板,其他啥也没有,连一根数据线…

最新酒桌小游戏喝酒小程序源码,带流量主,附带搭建教程

喝酒神器,增加了广告位,根据文档直接替换即可,原版本没有广告位 直接上传源码到开发者端即可 通过后改广告代码,然后关闭广告展示提交,通过后打开即可 搜索adunit-848e5f13d1ff237a替换为你的Banner 搜索adunit-597…

【教3妹学编程-算法题】使 X 和 Y 相等的最少操作次数

2哥 : 叮铃铃,3妹,过年干嘛呢,是不是逛吃逛吃,有没有长胖呢。 3妹:切,我妈张罗着要给我相亲呢。 2哥 : 相亲?哈哈哈哈 3妹:别笑了,我妈说跟我年龄相等的人都已经孩子上小…