mysqlbinlog工具_第10问:怎么查看 mysqlbinlog 的解析进度?

f9dd810e21f35e0ec96580e618266e95.png

问题

mysqlbinlog 是将 binlog 解析成可读可执行的 SQL 的重要工具。

但解析体积较大的 binlog 时,如何查看 mysqlbinlog 的执行进度就变成了一个问题,mysqlbinlog 并未提供 –progress 这样的参数。

那要怎么查看 mysqlbinlog 的解析进度?

实验

我们在 实验 08 中介绍了如何生成随机数据。可以利用其中技巧,生成较大的 binlog,我们忽略这个过程。

从已有的 binlog 开始,bin.000002 大约有 1.1 个 G:

a5f1e8f4cd47d677d5f18a70f58d3852.png

用 mysqlbinlog 解析该 binlog:

a5c5ecc59d2dd8df4bdf1cd698002548.png

大概会执行 4.6 秒左右。大家仔细做实验时,可以将 binlog 放大一些,让执行实验更长一些。

我们在 mysqlbinlog 解析时,查看其文件句柄:

580f7db2f2af1fa4c59fe9d63a16f93d.png

可以看到 mysqlbinlog 用句柄 3 读取 binlog。(我们暂时忽略句柄 4 指向的临时文件,其涉及到了行格式的解析过程,我们安排在以后的实验中慢慢介绍)

获取了 mysqlbinlog 处理文件句柄 3 的进度,就可以大概估算 mysqlbinlog 的整体进度:

b2e441ce9c62113971f8c23379435711.png

可以看到 mysqlbinlog 此时的进度大概是 600M 左右,整体进度估算为 54%。

结论

我们无法让 mysqlbinlog 直接输出进度,于是通过观察 mysqlbinlog 对 binlog 的读取进度,估算mysqlbinlog 的整体处理进度。

6733a185d97c1d0bba52a9dfe9d6c17e.png

mysqlbinlog 不是真的"流式"处理 binlog,所以本实验只能是估算,大家在实验时,会观察到 mysqlbinlog 读取了全部 binlog 后,会继续处理一点时间,才完成所有工作。

我们以后安排实验来研究 mysqlbinlog 是如何处理 binlog 的。

33458ad0375d0791a78c1ab8e6240eb1.png

关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值