MySQL binlog_format中sbr 和rbr(Statement-Based and Row-Based Replication)的优缺点

Posted 熊出陌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL binlog_format中sbr 和rbr(Statement-Based and Row-Based Replication)的优缺点相关的知识,希望对你有一定的参考价值。

Advantages of statement-based replication

1 技术成熟

2 对于大量的更新删除等操作,仅仅会写入少量的变更结果,加速日志获取或者备份的速度

3 日志文件包含了所有更改的语句,可以用来做验证数据库

 

 

Disadvantages of statement-based replication

1.1 在UDF自定义函数中的语句
1.2 在DELETE和UPATE中没有使用order by 进行限制的字句
1.3 以下函数不能在语句格式中进行复制 load_file() uuid() user() found_rows() 等,now()函数除外
1.4 相比行格式,insert ...select 需要更多的行级锁
1.5 相比行格式,update语句需要锁住大量的行来进行表扫描
1.6 对于InnoDB:使用AUTO_INCREMENT会阻塞其他不冲突的INSERT语句
1.7 在复杂的语句中,行被更新或者插入之前,在从服务器上会对语句进行评估和执行。如果是行复制,从服务器只需要更改受影响的行而不需要去处理所有的表
1.8 在从库执行复杂语句中,由于评估错误,随着时间的超时,会对行的影响慢慢增多
1.9 存储函数使用跟调用函数相同的now()时候,并不是存储过程真实的情况
2.1 确定性UDF必须应用在从属上。
2.2 主和从的表的定义必须要一致

 

以上是关于MySQL binlog_format中sbr 和rbr(Statement-Based and Row-Based Replication)的优缺点的主要内容,如果未能解决你的问题,请参考以下文章

mysql中binlog_format模式与配置详解

mysql的数据变更通知方法调研

腾讯云数据库团队:MySQL语句复制(SBR)的缺陷列举

MySQL的binlog日志介绍及binlog_format模式与配置详解

MySQL的binlog日志介绍及binlog_format模式与配置详解

binlog_format=ROW模式下mysql表无主键造成的从库延迟(卡住)