怎么解决Mysql Sleep线程引发的锁等待故障
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"怎么解决Mysql Sleep线程引发的锁等待故障",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决Mysql Sleep线程引发的
千家信息网最后更新 2026年11月01日怎么解决Mysql Sleep线程引发的锁等待故障
本篇内容主要讲解"怎么解决Mysql Sleep线程引发的锁等待故障",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决Mysql Sleep线程引发的锁等待故障"吧!
背景:
负责的生产库出现告警too many connections.
解决过程:
1. 第一反应就是出现了大量的连接或者是DDL把实例打满了,随即登上实例尝试登陆,却发现已经连不上了。然后动态调大连接数后。使用如下SQL看到大量的UPDATE线程未执行完。
select id,host,user,db,command,state,time,left(info,200) from information_schema.processlist where command <>'Sleep' order by time desc limit 100;
2. 此时看到这个场景,大家大概率都会以为是表tbl_prod的ID没有索引所以是全表查找更新,然而看到执行计划却发现并不是,反而是主键更新。
explain UPDATE tbl_prod SET status=1 WHERE id = 1198445;
3. 随后查看innodb引擎当前的状态,发现很有意思的事了,这些update线程都在等待锁,以其中一个线程为例。
show engine innodb status\G
4. 此时基本上可以断定是有长事务未提交导致的大量主键更新等待了。我们采用如下SQL可以找到这个长连接。
select p.host,p.time,t.trx_mysql_thread_id,t.trx_started,left(p.info,100) from information_schema.innodb_trx t join information_schema.processlist p on t.trx_mysql_thread_id =p.id order by time desc,t.trx_started desc limit 20;
5. 可以看到上面的第一条执行时间最长的为NULL的线程占用锁时间最长,其后则是大量的update等待线程了。那么我们将这个最长的null线程给KILL掉,问题即得到解决。
kill 2323514;
到此,相信大家对"怎么解决Mysql Sleep线程引发的锁等待故障"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
线程
故障
最长
更新
内容
实例
时间
学习
实用
更深
有意思
事务
兴趣
动态
场景
实用性
实际
就是
引擎
操作简单
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技企业
南京欣网互联网络科技有限公司
互联网科技公司经营范围
互联网金融 科技
上海互联网科技有限公司
西安互联网科技
齐家互联网科技
鑫亿盛互联网科技
友谊互联网络科技
太原新华互联网科技学校怎么样
互联网实体化科技化
中盈科技互联网信息有限公司
互联网科技实习生岗位职责
互联网科技中介
高科技互联网套路
萌小萌互联网科技河南有限公司
福建互联网展示科技馆设计
互联网科技平台产品运营
科技互联网公司两年变化
恒生科技指数 中概互联网
A股互联网金融科技公司
合肥互联网科技公司
青岛互联网科技公司
兼蜜互联网科技
小米互联网科技园设置
想开互联网科技公司怎么样
畅思互联网科技
广州燕处互联网科技有限公司
互联网科技手机排行榜
互联网科技创业计划的风险分析