怎么解决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安全错误
数据库的锁怎样保障安全
计算机网络技术有哪些特点
服务器的好坏
部分数据与数据库做比较去重
数据库驱动导入哪里
郑州师范学院计算机网络技术专业
中国农业银行软件开发中心职位
excel代理服务器在哪里
c 本地数据库联接
易语言正则结果写入数据库
c 数据库连接池高并发处理简书
服务器怎么测量性能
数据库系统最重要分特点
文摘数据库
怎么查看怪物猎人哪个服务器
六意互联网科技有限公司好吗
河南惬意网络技术有限公司
数据库会遇到的问题难点
软件开发对面试者的要求
计算机网络安全技术的是
深圳拓海在线网络技术
别人写好的数据库怎么连
广州软件开发好吗
青岛蓝鼎网络技术有限公司
红娘交友软件开发
国家网络安全科普读物
三级网络技术要刷多少套
绵阳软件开发待遇
综合服务器管理系统
美的软件开发加班吗
镇江品质联想服务器厂