16.2.1.1 基于语句的复制和基于行的复制的优缺点

每种二进制日志记录格式都有优点和缺点。对于大多数用户,混合复制格式应提供数据完整性和性能的最佳组合。但是,如果要在执行某些任务时利用特定于基于语句的复制格式或基于行的复制格式的功能,则可以使用本节中的信息,该信息概述了它们的相对优缺点,确定最适合您的需求。

基于语句的复制的优点

基于语句的复制的缺点

但是,所有其他功能都可以使用基于语句的复制正确地复制,包括NOW()等。

有关更多信息,请参见第 16.4.1.15 节,“复制和系统功能”

使用基于语句的复制无法正确复制的语句会记录一条警告,如下所示:

[Warning] Statement is not safe to log in statement format.

在这种情况下,也会向 Client 发出类似的警告。Client 端可以使用SHOW WARNINGS显示它。

基于行的复制的优点

Note

更新mysql系统数据库中信息的语句(例如GRANTREVOKE以及触发器,存储例程(包括存储过程)和视图的操纵)都使用基于语句的复制复制到副本。

对于诸如创建 table...选择的语句,将从 table 定义中生成CREATE语句,并使用基于语句的格式复制,而使用基于行的格式复制行插入。

基于行的复制的缺点

或者,使用binlog_rows_query_log_events变量,如果启用了-vv选项,则启用该变量会向_输出添加带有该语句的Rows_query事件。

首页