怎么解决Mysql Sleep线程引发的锁等待故障
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容主要讲解"怎么解决Mysql Sleep线程引发的锁等待故障",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决Mysql Sleep线程引发的
千家信息网最后更新 2025年11月08日怎么解决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安全错误
数据库的锁怎样保障安全
导航窗格能复制数据库对象吗
数据库中的数据冗余
网络技术团英文是什么
网络安全漏洞利用途径有哪些
房屋装修网络技术
国外服务器 网警
我与网络安全手抄报文字
服务器软件生产工艺流程
手机行业erp软件开发
互联网科技行业的新形势
五个严培育企业网络安全文化
联想服务器硬盘2.4t ssd
机房机柜服务器排线进度
直播间推流服务器
网络安全与技术
魔兽世界 连接服务器
储蓄银行软件开发
线上订餐系统数据库
网络技术基础体会
事件发生后网络安全事件分级
arduino软件开发环境介绍
网络技术服务行业怎么样
青岛晶虹网络技术
加强系统管理确保网络安全
网站服务器搭建与管理教程
阿里云服务器能过户吗
通嘉网络技术有限公司
天津服务器维修维保多少钱
网络技术部职责范围
数据库设计表格类型输不进去