iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >第15问:快速找到 binlog 中是否有大事务
  • 765
分享到

第15问:快速找到 binlog 中是否有大事务

第15问:快速找到binlog中是否有大事务 2022-04-09 19:04:34 765人浏览 绘本
摘要

本文关键字:大事务、binlog、linux 问题 我们并不喜欢 Mysql 中出现大事务(更新很多数据的事务),大事务往往带来很多维护的问题。 我们在维护 mysql 时,需要关注于是否出现了较大事务,在 binlog 里找到其出现

第15问:快速找到 binlog 中是否有大事务

本文关键字:大事务、binlog、linux

问题

我们并不喜欢 Mysql 中出现大事务(更新很多数据的事务),大事务往往带来很多维护的问题。

我们在维护 mysql 时,需要关注于是否出现了较大事务,在 binlog 里找到其出现的证据。

实验

我们先创建个数据库

这里我们启用了 GTID,对于非 GTID 的 binlog,大家也可以用类似的方法处理。

下面需要创建一些大小不同的事务,我们使用在 第11问 里使用过的手法,

反复执行,

下面我们开始研究 binlog,先解开一段看一下,

我们知道在 GTID 模式下,事务开头必然会有一个 GTID_event,如图中红框标注。

我们就过滤这一段信息,

这里用到了 grep 两个技巧:

  1. 过滤 tab 字符,用到了 "$(printf " ")" 来插入 tab 字符,无法直接使用 " " 字符。
  2. 使用 -B 参数向前找到了匹配的前一行,输出 "at xxx",这一行是 GTID_event 在 binlog 中的位置(单位是字节)。

然后我们将其中的位置信息过滤出来,

再将每两行的位置减一下,就获得了每一个事务在 binlog 中的大小,

将这些事务的大小排序一下,取最大值,

这是这个 binlog 中最大的 10 个事务的大小,可以看到最大的事务在 binlog 中占用了 658k 大小,不算太大。

本期没有关于 Mysql 太多的知识点,只是活用 Linux 的命令,可以简单高效获取 binlog 的信息。

下面附上本期命令的文字版:

~/opt/mysql/5.7.20/bin/mysqlbinlog data/mysql-bin.000001 | grep "GTID$(printf "	")last_committed" -B 1 

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

您可能感兴趣的文档:

--结束END--

本文标题: 第15问:快速找到 binlog 中是否有大事务

本文链接: https://www.lsjlt.com/news/7090.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux系统中快速找到大文件的具体方法是什么
    Linux系统中快速找到大文件的具体方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。众所周知Linux系统中一切皆为文件,所以Linux系统中文件很多,...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作