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展开多维度的统计

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

原文地址:https://www.cnblogs.com/danhuangpai/p/11484306.html

时间: 2024-10-03 10:44:48

mysql原理~binlog系列之~event浅谈的相关文章

mysql原理 ~ binlog系列之 - 基础篇

一 简介:我们会持续对binlog进行分析,默认为Row格式二 binlog记录事物具体内容    1 update会记录更改前和更改后所有列的值    2 delete会记录删除前所有列的值    3 insert会记录插入的具体sql    4 ddl语句只会记录语句本身,不会记录影响行    5 dcl语句不会记录    6 特殊类型       1 trigger 1 记录产生数据更新的sql语句.对于调用触发器后产生的数据更新,并不记录到binlog中       2 function

mysql原理 ~ binlog系列之 table_id详谈

一简介: 今天来聊聊minlog中的table_id 二 具体分析特点 1 table_id 并不是固定的,它是当表被载入内存(table_definition_cache)时,临时分配的,是一个不断增长的变量 2 当有新的table变更时,在cache中没有,就会触发一次load table def的操作,此时就会在原先最后一次table_id基础上+1,做为新的table def的id. 3  flush tables,之后对表的更新操作也会触发table_id 的增长. 4  如果tabl

NIO原理剖析与Netty初步----浅谈高性能服务器开发(一)

除特别注明外,本站所有文章均为原创,转载请注明地址 在博主不长的工作经历中,NIO用的并不多,由于使用原生的Java NIO编程的复杂性,大多数时候我们会选择Netty,mina等开源框架,但理解NIO的原理就不重要了吗?恰恰相反,理解NIO底层机制是理解这一切的基础,由此我总结一下当初学习NIO时的笔记,以便后续复习. 以下是我理解的Java原生NIO开发大致流程: 上图大致描述的是服务端的NIO操作. 第一步,绑定一个服务的端口 这与传统阻塞IO中的ServerSocket类似,没什么好说的

工具系列之邮件--浅谈工具如何改变你的工作效率

关于提高个人工作效率有很多方法,如计划工作.时间意识:集中精力.避免并行:简化工作.任务分解:回顾反省.总结经验:劳逸结合.健康体魄等等.本文以日常工作过程中人人都在用的邮件为出发点,从工具辅助.改善习惯的角度看待个人工作效率与工具使用方式上的关联,试图找出使用邮件的最佳实践. 通常,针对重复性或耗时过长的工作,我们利用工具来改善过程:针对自身能力或工作上存在的弱点,我们利用工具进行弥补.邮件作为最典型的一个职场工具,其在具体软件和操作上有丰富的表现形式,文中提到的邮件相关知识和使用方式主要都是

工具系列之邮件--浅谈工具怎样改变你的工作效率

关于提高个人工作效率有非常多方法.如计划工作.时间意识.集中精力.避免并行:简化工作.任务分解.回想反省.总结经验:劳逸结合.健康体魄等等. 本文以日常工作过程中人人都在用的邮件为出发点,从工具辅助.改善习惯的角度看待个人工作效率与工具使用方式上的关联,试图找出使用邮件的最佳实践. 通常,针对反复性或耗时过长的工作.我们利用工具来改善过程:针对自身能力或工作上存在的弱点,我们利用工具进行弥补.邮件作为最典型的一个职场工具.其在详细软件和操作上有丰富的表现形式,文中提到的邮件相关知识和使用方式主要

【转】浅谈分布式服务协调技术 Zookeeper

非常好介绍Zookeeper的文章, Google的三篇论文影响了很多很多人,也影响了很多很多系统.这三篇论文一直是分布式领域传阅的经典.根据MapReduce,于是我们有了Hadoop:根据GFS,于是我们有了HDFS:根据BigTable,于是我们有了HBase.而在这三篇论文里都提及Google的一个Lock Service —— Chubby,哦,于是我们有了Zookeeper. 随着大数据的火热,Hxx们已经变得耳熟能详,现在作为一个开发人员如果都不知道这几个名词出门都好像不好意思跟人

浅谈分布式消息技术 Kafka

http://www.linkedkeeper.com/1016.html Kafka的基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志.访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目. 主要应用场景是:日志收集系统和消息系统. Kafka主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化

浅谈分布式消息技术 Kafka(转)

一只神秘的程序猿. Kafka的基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志.访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目. 主要应用场景是:日志收集系统和消息系统. Kafka主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能.

搞懂分布式技术21:浅谈分布式消息技术 Kafka

搞懂分布式技术21:浅谈分布式消息技术 Kafka 浅谈分布式消息技术 Kafka 本文主要介绍了这几部分内容: 1基本介绍和架构概览 2kafka事务传输的特点 3kafka的消息存储格式:topic和parition 4副本(replication)策略:主从broker部署和partition备份,以及选主机制 5kafka消息分组,通过comsumergroup实现主体订阅 6push和pull的区别,顺序写入和消息读取,零拷贝机制 Kafka的基本介绍 Kafka是最初由Linkedi