mysql binlog event_mysql原理~binlog系列之~event浅谈

一 将具体分析binlog中的常用event

二 Row格式事件核心

ROW_LOG_EVENT+TABLE_MAP_EVENT+GTID_EVENT

三 event生效机制

在binlog cache中生效,然后刷新纪录写入binlog中

四 具体event 内容

0  FORMAT_DESCRIPTION_EVENT

1 PREVIOUS_GTIDS_LOG_EVENT

2  GTID_LOG_EVENT

3  TABLE_MAP_EVENT

4  ROW_LOG_EVENT

5  QUERY_EVENT ()

6  XID_EVENT

7 ROTATE_EVNET

8 STOP_EVENT

五 详解

0 FORMAT_DESCRIPTION_EVENT

在binlog文件开头记载binlog相关的版本和其他一些信息

1  PREVIOUS_GTIDS_LOG_EVENT

记载之前所有binlog的GTID集合,作用是为了加快扫描速度

2 GTID_LOG_EVENT

记载关于GTID的相关信息,并且携带last commited和seq number 用来并行回放

3  QUERY_EVENT

在Row格式下只记录DDL原始语句

4  TABLE_MAP_EVENT

用于描述表的内部ID和结构定义。

核心

table_id , table_name schema name length  col count col type

实例

Table_map: `yzs`.`t1`   TABLE_ID: '23'

5  ROW_LOG_EVENT

在Row格式下记录了事物语句的具体内容

6 XID_EVENT

当事务提交时,不论是statement还是row格式的binlog都会添加一个XID_EVENT作为事务的结束。该事件记录了该事务的ID。在mysql进行崩溃恢复时根据binlog中提交的情况来决定是否提交存储引擎中prepared状态的事务。

包含以下事件

WRITE_ROWS_EVENT,UPDATE_ROWS_EVENT,  DELETE_ROWS_EVENT

7 ROTATE_EVENT

当binlog文件大小达到max_binlog_size参数设置的值或执行flush logs命令时,binlog发生切换,这时会在当前使用的binlog文件末尾添加一个ROTATE_EVENT事件,将下一个binlog文件的名称和位置记录到该事件中。

8 STOP_EVENT

当MySQL服务停止时,会在当前binlog文件尾添加一个STOP_EVENT事件表示数据库的停止

六 总结

知道了这些事件的意义,我们可以根据这个对binlog展开多维度的统计

本文参考八怪大神的系列课程文章,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值