博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第41问:组提交是怎样提高性能的
阅读量:2141 次
发布时间:2019-04-30

本文共 717 字,大约阅读时间需要 2 分钟。

在图解系列中, 我们介绍过组提交的概念 (https://mp.weixin.qq.com/s/_WVE1xtGdtXEcwkTf7j_rA), 这次我们通过实验来观察其作用

实验

照例宽油起一个数据库:

这里我们调整了刷盘节奏, 使得现象会更明显一些. 同时, 双一的刷盘配置也是生产环境保持数据可靠的推荐配置.

我们进行一次压测:

开启压测的同时, 使用 pt-ioprofile 监控 IO :

我们再进行一次压测, 这次将压力并发调大一倍:

压测的同时, 还是使用 pt-ioprofile 监控 IO 次数:

我们可以看到:

在压力扩大一倍的情况下, 总体运行时长从55s提高到67s (提高20%), 但 MySQL 对各文件的 IO 次数并没有提升太多 (此处以"对 binlog 的刷盘次数"为例, 提高了1%)

我们再更直观的看一下组提交的情况:

通过 binlog 中的 last_committed , 可以确定事务被分到了哪个提交组里

接下来分别分析一下两次测试的事务数:

可以看到两次测试的提交组数提高了25%, 事务数提高了100%, 大部分事务都合并到了提交组里进行提交.

这就是组提交的作用: 将多个事务放在一个 IO 内进行提交, 以节省 IO 次数

小贴士

如果大家使用 MySQL 8.0 做实验, 并将 binlog_transaction_dependency_tracking 配置成 WRITESET 或者 WRITESET_SESSION , 那按照 last_commit 字段识别提交组的方法会不准确.


关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!

转载地址:http://akagf.baihongyu.com/

你可能感兴趣的文章
作为一名软件测试工程师,需要具备哪些能力
查看>>
【Pyton】【小甲鱼】类和对象:一些相关的BIF(内置函数)
查看>>
【Pyton】【小甲鱼】魔法方法
查看>>
单元测试需要具备的技能和4大阶段的学习
查看>>
【Loadrunner】【浙江移动项目手写代码】代码备份
查看>>
Python几种并发实现方案的性能比较
查看>>
[Jmeter]jmeter之脚本录制与回放,优化(windows下的jmeter)
查看>>
Jmeter之正则
查看>>
【JMeter】1.9上考试jmeter测试调试
查看>>
【虫师】【selenium】参数化
查看>>
【Python练习】文件引用用户名密码登录系统
查看>>
学习网站汇总
查看>>
【Python】用Python打开csv和xml文件
查看>>
【Loadrunner】性能测试报告实战
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>