源码分析 | 详解 binlog 时间戳与 exec_time 的关系
作者:李锡超,苏商银行DBA,负责数据库和中间件运维和建设。擅长 MySQL、Python、Oracle,爱好骑行、技术研究和分享。
爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
本文约 2000 字,预计阅读需要 8 分钟。
1概述
4. Write Event

5. Xid Event

6. 主节点小结
- 除了 BEGIN Event 的
timestamp
是第一个需要写入 binlog 操作(如:write/update/delete)的开始时间; - 其它 Event 的
timestamp
为 SQL 语句执行时的开始时间; immediate_commit_timestamp/original_commit_timestamp
即为提交时的时间戳;- exec_time = A - B
- A:执行第一个修改 SQL,完成第一行修改(write/update/delete)操作后,生成 BEGIN Event 的时间。
- B:第一个修改 SQL 的开始执行时间(thd->start_time)