10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 41.5 mb
PDF (A4)- 41.6 mb
手册(TGZ)- 262.2 kb
手册(Zip)- 372.3 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

MySQL 8.0参考手册/.../ 基于语句和基于行复制的优缺点

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

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

基于语句的复制的优点
  • 成熟的技术。

  • 写入日志文件的数据更少。当更新或删除影响许多行时,这将导致日志文件所需存储空间减少。这也意味着从备份中获取和恢复可以更快地完成。

  • 日志文件包含进行任何更改的所有语句,因此可以使用它们审计数据库。

基于语句的复制的缺点
基于行复制的优点
  • 所有更改都可以复制。这是最安全的复制形式。

    请注意

    控件中更新信息的语句mysql系统模式,例如格兰特撤销触发器、存储例程(包括存储过程)和视图的操作都使用基于语句的复制复制到副本。

    对于以下语句创建表…选择,一个创建语句从表定义生成并使用基于语句的格式复制,而行插入则使用基于行的格式复制。

  • 对于以下类型的语句,源上需要更少的行锁,从而实现更高的并发性:

  • 副本上所需的行锁更少插入更新,或删除声明。

基于行复制的缺点
  • RBR可以生成更多必须记录的数据。复制一个DML语句(例如更新删除语句),基于语句的复制只将语句写入二进制日志。相比之下,基于行的复制将每个更改的行写入二进制日志。如果语句更改了许多行,基于行的复制可能会向二进制日志写入大量的数据;即使对于回滚的语句也是如此。这也意味着创建和恢复备份可能需要更多的时间。此外,二进制日志被锁定较长时间以写入数据,这可能导致并发问题。使用binlog_row_image =最小大大减少劣势。

  • 确定性可加载函数,生成大型与基于语句的复制相比,基于行复制复制值所需的时间更长。这是因为记录列值,而不是生成数据的语句。

  • 您无法在副本上看到从源接收和执行了哪些语句。但是,您可以看到更改了哪些数据mysqlbinlog有了选项——base64-output = DECODE-ROWS而且——详细

    或者,使用binlog_rows_query_log_events变量,如果启用该变量,则添加Rows_query事件中使用的语句mysqlbinlog时输出。vv选项。

  • 对于使用MyISAM存储引擎,副本上需要更强的锁插入语句作为基于行的事件应用到二进制日志时使用,而不是作为语句应用时使用。这意味着并发插入MyISAM使用基于行的复制时不支持表。