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日志大小,又能最大程度地保障主从复制的一致性。
热门推荐
托卡尔丘克《雅各布之书》:在启蒙与后现代之间构建当代神话
如何查询航班的前端航程
如何适应右舵驾驶?右舵驾驶对驾驶习惯有哪些影响?
LPR连续五个月保持不变:1年期3.1%,5年期以上3.6%|快讯
诺查丹玛斯:16世纪预言家的传奇与真相
肺上的炎症一般多久能消
孕吐别硬扛,中医妙法解烦忧
如何分析黄金市场的价格形成因素与投资策略的对应关系?
养老公寓创新创业项目:创新老年人生活,助力我国老龄化应对
什么是水平档距?什么是垂直档距?具体指哪两点的距离?
金钱龟养护指南:珍稀物种的呵护与传承
咖啡里的“侨”味道:承载侨乡记忆 牵手文化交流
中国咖啡产区云南海南福建广西比较,谁更有潜力?
无边界支付:数字货币如何改变跨境电商?
宜昌自由行攻略:三峡风光+地道美食+避坑指南
Minecraft服务器规则与权限设置指南
怪物猎人荒野全武器特点介绍
高龄产妇注意事项全攻略
护肤哪个步骤用芦荟胶:芦荟胶在护肤品的那一步?
一只羊值多少钱?从经济到文化的全面解读
网购六大隐形陷阱全解析:从虚假宣传到隐私泄露,这份避坑指南请收好
国际观察|美元潮与汐——收割世界的分解动作
简历语言描述技巧
CMT冷金属过渡焊接工艺:原理、优势与应用
东南亚跨境电商发展研究报告:这片蓝海究竟有多大?
菜市场里藏着3个“降糖王”,每天吃一点,血糖稳如山
散瞳对孩子眼睛有伤害吗?武汉普瑞眼科林珊的回答让您安心
绝命毒师第三季:人性深渊与化学奇迹的交织
熊猫绘画怎么绘制对称插画
空气变馒头!人工合成淀粉引争议,人类食品新革命?