当前位置: 首页 > ds >正文

MySQL的binlog有有几种录入格式分别有什么区别 ?

MySQLbinlog主要有三种录入格式,具体区别如下:

1. ‌Statement格式(SBR

  • 记录方式:直接存储执行的SQL语句
  • 优点
    • 日志文件体积小,节省存储和网络资源
    • 可读性强,便于审计和调试
  • 缺点
    • 可能导致主从数据不一致(如使用NOW()UUID()等非确定性函数)
    • 复杂操作(如触发器、子查询)易引发复制问题。
  • 适用场景:简单SQL操作且对一致性要求较低的场景。

2. ‌Row格式(RBR

  • 记录方式:存储每一行数据变更前后的具体值。
  • 优点
    • 严格保证主从数据一致性,规避函数或环境差异带来的问题。
    • 支持复杂操作(如含UDF或触发器的场景)。
  • 缺点
    • 日志体积大,频繁更新时可能占用大量磁盘和I/O资源。
    • 数据恢复和日志解析效率较低。
  • 适用场景:对一致性要求高的场景(如金融业务)。

3. ‌Mixed格式(MBR

  • 记录方式:混合使用StatementRow格式,默认以Statement记录,检测到潜在风险(如非确定性函数)时自动切换为Row
  • 优点
    • 平衡日志体积与数据一致性需求。
    • 灵活性高,适应多类型操作。
  • 缺点
    • 维护逻辑复杂,可能引入隐式兼容性问题。
  • 适用场景:通用场景,需兼顾性能与一致性的业务。

关键区别总结

维度

Statement

Row

Mixed

日志内容

SQL语句

行级数据变更前后的具体值

动态选择StatementRow格式

一致性

低(依赖SQL确定性)

中等(自动切换机制)

日志体积

介于两者之间

性能影响

低(但可能锁升级)

高(频繁I/O

中等

推荐配置:优先选择Mixed格式作为默认设置,需强一致性时切换为Row格式,并通过max_binlog_size限制日志文件大小。

http://www.xdnf.cn/news/9951.html

相关文章:

  • VSCode的下载与安装(2025亲测有效)
  • LLaMaFactory 微调QwenCoder模型
  • Windows 中禁止在桌面放置文件以保持桌面整洁
  • 深入详解编译与链接:翻译环境和运行环境,翻译环境:预编译+编译+汇编+链接,运行环境
  • does not provide an export named ‘getActiveHead‘
  • 集成均衡功能电池保护芯片在大功率移动电源的应用,创芯微CM1341-DAT、杰华特JW3312、赛微微电CW1244、中颖SH366006
  • 从Homebrew找到openssl.cnf文件并拷贝到Go项目下使用
  • vr中风--数据处理模型搭建与训练
  • NW907NW918美光固态闪存NW920NW930
  • mongodb删除字段
  • springboot拦截器的基本配置
  • lost connection to mysql server at ‘reading initial communication packet‘
  • 怒更一波免费声音克隆和AI配音功能
  • MediaMtx开源项目学习
  • window 显示驱动开发-转换 Direct3D 固定函数状态(二)
  • 《深度搜索-R1-0528》
  • git仓库服务gogs详解
  • EfficMultiCoreMemoryPool项目
  • Git 中移除已追踪的文件
  • 解决 xmlsec.InternalError: (-1, ‘lxml xmlsec libxml2 library version mismatch‘)
  • TensorFlow深度学习实战(18)——K-means 聚类详解
  • QML视图组件ListView、TableView、GridView介绍
  • 人工智能-训练AI模型涉及多个步骤
  • 数据结构(7)树-二叉树-堆
  • uni-app 安卓消失的字符去哪里了?maxLength失效了!
  • 2025年DDoS混合CC攻击防御全攻略:构建智能弹性防护体系
  • c#与java的相同点和不同点
  • C# Renci.SshNet 登陆 suse配置一粒
  • 每日算法 -【Swift 算法】盛最多水的容器
  • Emacs 折腾日记(二十六)——buffer与窗口管理