基于行的复制和基于语句的复制之间的实际区别是什么?我实际上是在查看复制对从属服务器的影响。
如果我使用的是基于行的复制,那么对从属服务器有什么影响?如果我使用的是基于语句的复制,那么会有什么影响?
请同时考虑以下参数:
replicate-ignore-db and replicate-do-db
谢谢....!
基于行的复制和基于语句的复制之间的实际区别是什么?我实际上是在查看复制对从属服务器的影响。
如果我使用的是基于行的复制,那么对从属服务器有什么影响?如果我使用的是基于语句的复制,那么会有什么影响?
请同时考虑以下参数:
replicate-ignore-db and replicate-do-db
谢谢....!
Answers:
基于语句的复制(SBR)将复制SQL语句。使用mysqlbinlog转储程序更容易阅读。
基于行的复制(RBR)将复制实际的数据更改。二进制日志和中继日志的增长将比SBR快得多。您也无法识别生成更改的SQL。
(请阅读下面有关MySQL 5.6.2的更新信息。)
这是一个更全面的利弊列表:http : //www.databasejournal.com/features/mysql/article.php/3922266/Comparing-MySQL-Statement-Based-and-Row-Based-Replication.htm
MySQL将在其二进制日志中允许两种类型的语句/行格式。我建议基于STATEMENT。默认的二进制日志格式为MIXED,可以。
由于您使用replicate-ignore-db
和replicate-do-db
,因此我相信基于语句的复制。
MySQL 5.6.2更新:
在MySQL 5.6.2中引入的binlog_rows_query_log_events
系统变量使MySQL 5.6.2或更高版本的服务器将信息日志事件(例如行查询日志事件)写入其二进制日志中。这样我们就可以确定生成更改的SQL。