Mysql binlog_order_commits







一、binlog_order_commits 简介

按照官方文档的解释,
binlog_order_commits
意思是 Whether to commit in same order as writes to binary log
即:提交的事务是否按照写入二进制日志 binlog 的顺序提交

在一些情况下关闭这个参数,可以获得性能上的一点提升。




二、binlog_order_commits 使用场景

Mysql binlog 提交一般被细化为3个处理阶段,每一阶段都有lock保护,
这3个阶段负责批量读取binlog并调用fsync,而后以同样顺序提交事务(可选);


1、Flush Stage

leader 会不断读取 flush queue 直到队列为空或者超时,
这样允许处理过程中新加入的事务也能得到及时处理;
leader 将排队的事务写入 binlog buffer,当队列为空时则进入下一阶段;
超时机制避免了事务长时间等待,


2、Sync Stage

调用 fsyc,一次刷新多个事务;


3、Commit Stage

提交事务,保证所有事务提交顺序同写入 binlog 一致 (innodb hot backup);
前面提到了,为了提升性能,也可选择不按次序提交;
这里就是通过 binlog_order_commits 控制的了。





三、binlog_order_commits 配置方法

1、mysql -uroot -hxxxip -Pxxx

show variables like “%binlog_order_commits%”;

set global binlog_order_commits=1/0 ;


2、vi /etc/my.cnf 修改 binlog_order_commits 为 1/0




参考文档:MySQL5.7 官方文档地址




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值