mysql group commit_[MySQL] Group Commit理解

简单的方法理解MySQL Group Commit原理

一个摆渡将乘客从A点传输到B点

MySQL 5.0 行为

在MySQL 5.0中,摆渡会在A点按顺序搭载乘客,并且传送到B点。A点和B点的来回行程大约需要10min时间,因此在摆渡过程中一些乘客已经到达A点。这样,在摆渡返回A点后,只会按顺序搭载下一个乘客,其他的都在排队等待中。

MySQL 5.6 行为

在MySQL 5.6中,摆渡将会搭载A点队列里的所有乘客,并且传送他们到B点。每一次摆渡返回A点搭载乘客时,他会统计所有在等待的人,把他们传送到B点。

在现实情况下,当有很多乘客等待的时性能是比较好的。

在5.6中,group commit是默认的。

MySQL 5.7 行为

在MySQL 5.7中的行为和5.6类似,会搭载所有A点等待的乘客,并且传送到B点。但有很明显的性能提升!

当摆渡返回A点,搭载等待乘客时,可以配置等待一小会,以便新的乘客到达。

例如:如果知道A和B点的往返行程时间是10min,出发前在A点为什么不多等待30s呢?这或许能节省摆渡的往返次数,提升能够传送乘客的总数量。

相关配置是:

binlog-group-commit-sync-delay 微妙延迟

binlog-group-commit-sync-no-delay-count 停止等待前的等待事务数

总结

很明显乘客就是事务,摆渡就是昂贵的fsync操作。很重要一点是只有一次摆渡操作,一系列有序的二进制日志。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值