怎么解决Mysql Sleep线程引发的锁等待故障
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,本篇内容主要讲解"怎么解决Mysql Sleep线程引发的锁等待故障",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决Mysql Sleep线程引发的
千家信息网最后更新 2024年11月20日怎么解决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安全错误
数据库的锁怎样保障安全
php数据库删除恢复
怎么看应用数据库
数据库怎么才算一个事物
文件系统 数据库系统
星瀚网络技术公司
云服务器 价格
王者荣耀英雄图鉴数据库韩信
会计软件开发不完善
创势互联网科技
云南自学java软件开发
傲腾内存数据库
sql数据库注册表一致性
防网络安全知识主题班会
手机进服务器网址一片空白
河南正规软件开发服务检测中心
y-str数据库查询原则
工科互联网科技创业
网络安全 举报人
魔兽世界1.12版数据库
服务器攻击防范
数据库还原表
家庭教育与网络安全知识
乐山软件开发设计
vb中access数据库
网站数据库更新
河南正规软件开发服务检测中心
无锡企业软件开发报价
和计算机网络技术相近的专业
网络技术漏洞犯罪
服务器存储拓扑图