Mysql 主从复制-Binlog详细解析(Row格式)

本文详细解析MySQL主从复制中的binlog,重点探讨Row格式。binlog有Statement、Row和Mixed三种格式,Row格式能避免某些情况下的主从不一致问题。文章通过实例分析binlog头信息、table_map event以及update操作的二进制格式,帮助读者理解binlog的工作原理。
摘要由CSDN通过智能技术生成

Mysql 主从复制过程中,数据交换主要是依托于mysql的Binlog,本文将对mysql的binlog进行详细的解析,从二进制来分析binlog的语义。

binlog又分为3中,statement格式,row格式,mixed格式。

statement 格式就是把所有数据变化的sql记录下来,但是如果出现now() rand()等函数时,会造成主从不一致的情况。

mixed格式是将row和statement结合起来,DML用row,DDL用statement。

row格式是比较复杂的,下面会详细介绍。

首先,我们先来做个测试,执行以下sql语句。

我们做了对于一个空的数据库做了6个操作,其中,1和2为DDL,row格式不记录。6为查询语句,row格式也不记录。重点分析中间的3条。


背景:

    Mysql binlog 采用小端存储,fe 62 69 6a 应解析为 6a6962fe。


Mysql binlog的开头。

在binlog中,所有改变都被记录为event,每个event的前19个Byte为头。头的解析规则为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值