怎么做网站官方电话,厦门网站建设 金猪,这么做国外网站的国内镜像站,怎样设计一个网页欢迎关注公众号#xff08;通过文章导读关注#xff1a;【11来了】#xff09;#xff0c;及时收到 AI 前沿项目工具及新技术的推送#xff01; 在我后台回复 「资料」 可领取编程高频电子书#xff01; 在我后台回复「面试」可领取硬核面试笔记#xff01; 文章导读地址… 欢迎关注公众号通过文章导读关注【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 磁盘文件中有一些更新的数据还没有刷到磁盘中去的话就会先将这部分数据页给刷到磁盘中去如果这部分数据很多的话就会导致花费比较长的时间 那么经过以上分析性能抖动的原因找到了如何解决呢
解决思路就是让 MySQL 尽量快地将数据从内存给刷到磁盘中去
让部署数据库机器的磁盘使用 SSD 固态硬盘之后使用 fio 工具来对部署数据库的机器的 SSD 固态硬盘每秒钟最多能承载磁盘 IO 次数做一个测试测试出来每秒最多的磁盘 IO 次数之后可以将这个值设置给 MySQL 的参数innodb_io_capacity通过设置这个参数可以让数据库以最大速率将缓存页刷到磁盘中去
可以使用 fio 工具来对部署数据库的机器的 SSD 固态硬盘每秒钟最多能承载磁盘 IO 次数做一个测试测试出来每秒最多的磁盘 IO 次数之后可以将这个值设置给 MySQL 的参数innodb_io_capacity尽可能让数据库以最大速率进行刷盘操作