mysql:1205-Lock wait timeout exceeded;try restarting transaction

1.现象

2.分析

使用下面sql在自带数据库的information_schema中查询,注意观察那些长时间开启事务又没完成的进程,然后根据进程的db、操作人、主机、事务开启时间和状态,来排查是什么情况导致的事务未完成(代码异常、执行时间超时等等);我这里是异步作业事务执行时间过长导致的

sql 复制代码
-- 查询事务和关联进程
select p.Id as '执行进程',p.`USER` as '执行用户',p.`HOST` as '执行进程主机',p.DB as '执行进程数据库',
t.*
from innodb_trx t
join PROCESSLIST p on t.trx_mysql_thread_id = p.ID;

3.解决

如果事务长时间没完成,能够判断出已经不可能完成了,直接杀掉开启该事务的进程,如果还能完成,则等待事务完成;同时优化代码,将长时间执行的事务分隔为多次短时间的事务.

sql 复制代码
-- 杀掉进程
kill 836703;
相关推荐
弹简特1 小时前
【Linux命令饲养指南】CentOS 安装 MySQL【AI辅助实现】
linux·mysql·centos
Chasing__Dreams1 小时前
Mysql--基础知识点--100-- insert VS select...for update 加锁
数据库·mysql
爱莉希雅&&&2 小时前
MySQL 高可用实战:PXC + HAProxy + Keepalived 完整版笔记
运维·数据库·mysql·haproxy·数据库同步·pxc
船长Talk2 小时前
SQL聚合函数与分组统计:数据分析核心技能
mysql
fly spider2 小时前
MySQL之优化
数据库·mysql·oracle
弹简特3 小时前
【Linux命令饲养指南】Ubuntu 安装 MySQL【AI辅助实现】
linux·mysql·ubuntu
试试勇气3 小时前
MySQL--数据库基础
数据库·mysql
A-刘晨阳3 小时前
Kubernetes 部署 MySQL 一主两从集群(StatefulSet + Job 初始化主从复制)
运维·mysql·adb·kubernetes·主从复制
毅炼3 小时前
MySQL常见问题总结(2)
java·数据库·mysql
色空大师3 小时前
【阿里云部署服务问题指南】
java·mysql·阿里云·docker