MySQL Binlog 日志的三种格式详解
创作时间:
作者:
@小白创作中心
MySQL Binlog 日志的三种格式详解
引用
CSDN
1.
https://blog.csdn.net/qq_29752857/article/details/136728483
MySQL的binlog日志是数据库实现主从复制、数据恢复等功能的重要工具,它提供了三种不同的记录格式,分别为Statement、Row和Mixed格式。
Statement(基于SQL语句的复制,SBR)
Statement格式 的binlog会记录每一项更改数据的SQL语句本身。这意味着每当主库上执行了一个数据修改操作,其对应的SQL语句就会被完整地记录在binlog中。
优点 :
- 记录的内容相对简洁,不包含每一行具体的变化细节,因此可以减少binlog日志的大小,节省磁盘IO,提升性能。
缺点 :
- 由于仅仅记录了SQL语句,为了在备库上精确重现主库的执行效果,还需要记录诸如session变量、用户定义变量等相关上下文信息,以防备库因环境差异而导致执行结果不同。
- 对于涉及特定存储过程、函数、触发器调用的情况,可能无法确保复制的一致性。
Row(基于行的复制,RBR)
Row格式 的binlog不再记录SQL语句,而是直接记录数据行级别的更改详情。
优点 :
- 明确记录了每一行数据的修改细节,能精确反映数据变化,避免了SBR中可能出现的复制一致性问题。
- 即使在主从服务器的表结构稍有差异或者存在触发器、函数等情况,也能确保复制的正确性。
缺点 :
- 由于需要记录每一行的具体修改,可能导致binlog日志量增大,占用更多存储空间,增加网络传输负担。
Mixed(混合模式复制,MBR)
Mixed格式 则是对前两种格式的综合运用,MySQL会智能地根据执行的具体SQL语句选择合适的日志记录方式。
特点 :
- 对于大多数常规SQL语句,MySQL会选择使用Statement格式记录binlog,以减少日志量。
- 当遇到那些在备库上直接执行原始SQL语句无法达到与主库相同效果的情况,如涉及不确定性的函数、存储过程、触发器等,MySQL会自动切换到Row格式,确保复制的准确性。
通过灵活运用Mixed格式,MySQL既能尽量减小binlog日志大小,又能最大程度地保障主从复制的一致性。
热门推荐
生育与养老:这一年的关键词都在这儿
骨折后饮食六大忌口,东南大学附属中大医院专家详解
装修公司跑路,消费者该如何维权?
气温骤降早知道 | 天一冷“老寒腿”就作祟,该如何正确地保护膝关节?
春天腿关节痛?3大原因+有效缓解方法,别再忽视!
蛋白粉可以和肌酸一起喝吗
HTML开发必备:实时查看效果的多种实用方法
工业交换机如何增强网络连接的可靠性
揭秘柠檬含糖量高的真相(柠檬并非想象中那么“酸爽”,教你如何科学食用)
如何安装浴霸在扣板吊顶上并确保安全?这种安装如何考虑实际需求?
如何确定光伏建设中的最佳安装倾角
安塞腰鼓为乡村振兴注入文化新动能
怎样辞职最快还可以拿到工资
玄学从业者是否违法?探究我国相关法律法规
源码如何封装成库函数
强壮、稳重、笔直: 骨质疏松症的体育活动和锻炼建议
掌握这些要点,别让听力在无声中“掉队”|全国爱耳日
重游太平老街
碱液循环泵设备安装DN250橡胶接头
骨关节炎的护理方法有哪些
探索品牌精神文化的核心价值与实践意义
基督教圣经中失落的七本书
【点胶机性能测试秘籍】:手持版测试与优化策略全攻略
汉族历史上的主要事件:从炎黄到现代,中华民族的发展轨迹
2025 设计圈十大流行趋势:AI驱动+融合创新
花椒泡水喝能治打呼噜吗?
如何养护梦幻天使多肉状态?(轻松get多肉美学,掌握养育心得)
你家猫有多信任你?六项猫咪“信任度”,衡量你和猫咪的感情深度
睡前牛奶好处和坏处
房屋租售比的计算方法是什么?这种计算方法的准确性如何?