MySQL Binlog 日志的三种格式详解

MySQL的binlog日志是数据库实现主从复制、数据恢复等功能的重要工具,它提供了三种不同的记录格式,分别为Statement、Row和Mixed格式。

1. Statement(基于SQL语句的复制,SBR)

Statement格式的binlog会记录每一项更改数据的SQL语句本身。这意味着每当主库上执行了一个数据修改操作,其对应的SQL语句就会被完整地记录在binlog中。

优点

  • 记录的内容相对简洁,不包含每一行具体的变化细节,因此可以减少binlog日志的大小,节省磁盘IO,提升性能。

缺点

  • 由于仅仅记录了SQL语句,为了在备库上精确重现主库的执行效果,还需要记录诸如session变量、用户定义变量等相关上下文信息,以防备库因环境差异而导致执行结果不同。
  • 对于涉及特定存储过程、函数、触发器调用的情况,可能无法确保复制的一致性。

2. Row(基于行的复制,RBR)

Row格式的binlog不再记录SQL语句,而是直接记录数据行级别的更改详情。

优点

  • 明确记录了每一行数据的修改细节,能精确反映数据变化,避免了SBR中可能出现的复制一致性问题。
  • 即使在主从服务器的表结构稍有差异或者存在触发器、函数等情况,也能确保复制的正确性。

缺点

  • 由于需要记录每一行的具体修改,可能导致binlog日志量增大,占用更多存储空间,增加网络传输负担。

3. Mixed(混合模式复制,MBR)

Mixed格式则是对前两种格式的综合运用,MySQL会智能地根据执行的具体SQL语句选择合适的日志记录方式。

特点

  • 对于大多数常规SQL语句,MySQL会选择使用Statement格式记录binlog,以减少日志量。
  • 当遇到那些在备库上直接执行原始SQL语句无法达到与主库相同效果的情况,如涉及不确定性的函数、存储过程、触发器等,MySQL会自动切换到Row格式,确保复制的准确性。

通过灵活运用Mixed格式,MySQL既能尽量减小binlog日志大小,又能最大程度地保障主从复制的一致性。

相关推荐

  1. MySQL Binlog 格式详解

    2024-03-19 00:36:03       39 阅读
  2. docker 查看方式

    2024-03-19 00:36:03       44 阅读
  3. SpringBoot 项目,方式实现打印 sql

    2024-03-19 00:36:03       31 阅读
  4. 如何在 Nginx 中配置访问格式

    2024-03-19 00:36:03       22 阅读
  5. Linux查看方法

    2024-03-19 00:36:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-19 00:36:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-19 00:36:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-19 00:36:03       82 阅读
  4. Python语言-面向对象

    2024-03-19 00:36:03       91 阅读

热门阅读

  1. 0010、TS的字面量类型

    2024-03-19 00:36:03       41 阅读
  2. 【Kotlin】变量和代码块的初始化顺序

    2024-03-19 00:36:03       42 阅读
  3. MySQL常用函数

    2024-03-19 00:36:03       39 阅读
  4. 图论复习(最短路、最小生成树)

    2024-03-19 00:36:03       37 阅读
  5. linux休眠-电源管理过程梳理

    2024-03-19 00:36:03       37 阅读
  6. C# 如何解决主线程堵塞问题

    2024-03-19 00:36:03       41 阅读
  7. Leetcode 3085. Minimum Deletions to Make String K-Special

    2024-03-19 00:36:03       48 阅读
  8. 机器学习入门:探索智能算法的世界 (上)

    2024-03-19 00:36:03       39 阅读
  9. spring boot 实现 PDF转换图片

    2024-03-19 00:36:03       43 阅读
  10. uniapp 兼容pc与手机的样式方法

    2024-03-19 00:36:03       39 阅读
  11. Amazon Elastic MapReduce介绍

    2024-03-19 00:36:03       36 阅读
  12. 【大数据】二、HDFS 入门演示

    2024-03-19 00:36:03       32 阅读