千家信息网

如何理解MySQL数据延迟跳动的问题

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"如何理解MySQL数据延迟跳动的问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何理解MySQL数据延迟跳动的问题"吧!首先在高可用
千家信息网最后更新 2026年11月02日如何理解MySQL数据延迟跳动的问题

本篇内容主要讲解"如何理解MySQL数据延迟跳动的问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何理解MySQL数据延迟跳动的问题"吧!

首先在高可用检测中,有一套环境的检测时断时续,经过排查发现是数据库产生了延迟,在登录到从库show slave status查看,会发现Seconds_behind_master的值是不断跳动的,即从0~39~0~39这样的频率不断跳动,让人很搓火。

查看数据库的相关日志发现竟然没有任何可以参考的日志记录,怎么分析这个问题呢,我们先来复现,于是我按照节奏抓取了3次问题出现的日志,即通过show slave status连续监测,抓取show slave status输出的结果保存下来,这样我们就得到了一个问题发生过程中的偏移量变化,而这个变化则是在SQLThread在回放过程中产生的问题。

比如下面的一段输出,我截取的是Slave端的relay log进行分析,相应的字段为Relay_Log_Pos

Slave_IO_State: Waiting for master to send event                   Master_Host: xxxx                   Master_User: dba_repl                   Master_Port: 4306                 Connect_Retry: 60               Master_Log_File: mysqlbin.000044           Read_Master_Log_Pos: 386125369                Relay_Log_File: slave-relay-bin.000066                 Relay_Log_Pos: 386125580         Relay_Master_Log_File: mysqlbin.000044

所以很快得到了偏移量的变化情况:385983806 ,386062813 ,386125580

接着我使用mysqlbinlog开始分析这些日志过程中的明细,根据如下的命令可以很快得到转储的日志中相关的表有3张。

# grep INSERT  relaylog_xxxx.dump |awk '{print $3 " " $4}'|sed 's/INTO//g'|sort|uniq  act_action_exec_info  act_join_desc  dic_subsidy_marketing_querylog_202008

我逐步分析了每张表的数据操作情况,得到的信息还是比较有限,继续做更进一步的分析,比如我们分析一下整个日志中的事务量大小:

# mysqlbinlog slave-relay-bin.000066 | grep "GTID$(printf '\t')last_committed" -B 1 \ >                                     | grep -E '^# at' | awk '{print $3}' \ >                                     | awk 'NR==1 {tmp=$1} NR>1 {print ($1-tmp);tmp=$1}' \ >                                     | sort -n -r | head -n 100 mysqlbinlog: [Warning] unknown variable 'loose-default-character-set=utf8' 5278 5268 5268 5268 5253 5253 5253 5253 5253

可以看到是5K左右,算是比较大了,而这些额外的信息从哪里获得呢,我在主库开启了general_log,这样就能够得到更细粒度的操作日志了。

进一步分析发现,整个业务使用了显示事务的方式:SET autocommit=0,整个事务中包含了几个大SQL,里面存储了很多操作日志明细,而且在事务操作过程中还基于Mybatis框架调用了多次select count(1) from xxx的操作。

经过和业务沟通也基本明确了以上问题。

到此,相信大家对"如何理解MySQL数据延迟跳动的问题"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

问题 日志 分析 数据 延迟 事务 过程 变化 明细 不断 业务 信息 内容 很快 情况 数据库 偏移 学习 检测 输出 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州万易互联网科技有限公司 涨乐互联网科技 智能科技公司是互联网公司吗 网络科技有限互联网 关于新基建和互联网科技 丰台科技园 互联网 左右互联网络科技 佩信高科技互联网 华中科技有哪些互联网大佬 互联网科技公司需要的职位 银川新华互联网科技职业技术培训学校图片 苏州五指互联网络科技有限 苏州铭阳互联网科技有限公司 南博望互联网科技有限公司 上海钢联属于互联网科技股吗 江苏苏星互联网科技有限公司 吉林省码上互联网科技电话 互联网科技接地气 科技互联网经济论坛 小牛互联网科技有限公司地址 奇酷互联网科技 互联网科技缩写 广西互联网科技公司 成都狮子座互联网科技 中国互联网十大科技股排名 东莞新华互联网科技学校 江苏苏星互联网科技有限公司 互联网领先科技宣传片 陕西云淼互联网科技公司 10位科技互联网大佬
0