MySQL binlog format主从复制各模式区别

名词释义

STATEMENT causes logging to be statement based. 不安全,快速

ROW causes logging to be row based. 安全,有可能执行缓慢,效率不高

MIXED causes logging to use mixed format. 根据情况选择合适的解决方案:判断陈述是否是不确定性。有可能造成不安全结果

使用方式

mysql> SET GLOBAL binlog_format = 'STATEMENT';
mysql> SET GLOBAL binlog_format = 'ROW';
mysql> SET GLOBAL binlog_format = 'MIXED';

区别解释

case1:

UPDATE mytable SET a = a + 1 LIMIT 1;

STATEMENT 并不保证哪一个数据会被更新,因为在磁盘中的顺序无法保证,而ROWS可以保证准确的数据。

case2

UPDATE mytable SET a = a + 1;

STATEMENT 只用复制少量bytes表示该复制操作,而如果数据量较大,ROWS会复制全部数据,造成非常大的binlog日志。

参考:

https://dev.mysql.com/doc/refman/5.7/en/binary-log-setting.html

https://serverfault.com/questions/212549/which-binlog-format-to-use-for-mysql-replication

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值