mysql查看数据库锁等待排查笔记
实验版本:5.7.27
命令如下:
mysql> use information_schema;
mysql> select count(*) from INNODB_LOCK_WAITS;
+----------+
| count(*) |
+----------+
| 50 |
+----------+
1 row in set, 1 warning (0.00 sec)
SHOW ENGINE INNODB STATUS\G
查看输出得信息进行排查,或者执行以下命令
/usr/bin/mysql -Ne "SHOW ENGINE INNODB STATUS\G" > test.txt
有可能会提示需要root用户名和密码。
下载所有信息test.txt进行分析。可以看到如下信息:
可以得知DETECTED DEADLOCK:
此数据库执行update testtab1 set cr_member_version=cr_member_version+1 where cr_roomid='C430858';update testtab1 set cr_member_version = cr_member_version+1 where cr_roomid in (select ctm_roomid from testtab2 where ctm_ipocid = '1440284405946') and cr_status = 0等操作,数据库出现了锁等待。
需要进一步找开发人员分析业务逻辑,排查锁等待原因。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通