开发者社区> 问答> 正文

MySQL 在写 BinLog 文件时,会按照怎么样的规则进行写操作?

MySQL 在写 BinLog 文件时,会按照怎么样的规则进行写操作?

展开
收起
游客cum3jectrqmmy 2022-01-13 15:34:08 573 0
1 条回答
写回答
取消 提交回答
  • MySQL 在写BinLog文件时,会按照如下规则进行写操作:

    1) 根据记录的模式 ( Row 、Statement 和 Mixed ) 和操作 ( create 、drop 、alter 、in sert、update 等)触发事件生成日志事件(事件触发执行机制)。

    2) 将事务执行过程中产生的 日志事件写入相应的缓 冲区。注意, 这里是每个事务线程都有一个缓冲区。日志事件保存在数据结构 bin log_cache_mngr 中, 这个数据结构中有两个缓冲区 : 一个是 stmt—cache , 用于存放不支持事务的信息; 另一个是 trx—cache , 用于存放支持事务的信息。

    3) 事务在 Commit 阶段会将产生的日志事件写入磁盘的 BinLog 文件中。因为不同的事务会以串行的方式将 日志事件写入 BinLog 文件中, 所以一个事务中包含的日志事件信息在 BinLog 文件中是连续的 ,中间不会插入其他事务的B志事件。

    资料来源:《深入理解分布式事务:原理与实战》,下载链接为:https://developer.aliyun.com/topic/download?id=8201。

    2022-01-13 18:06:14
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载
PolarDB-X 2.0 全局 Binlog 与备份恢复能 立即下载

相关镜像