今天突然发现 mysql 更新缓慢而且失败 SELECT * FROM information_schema.innodb_trx;发现有长时间 wait 的 update 语句,遂直接 kill,重启了一下 mysql。 后续发现该表的 update 语句都会超时,一直处于 wait 情况。其他表良好。
https://s2.ax1x.com/2020/01/16/lje0eK.png
查询情况的图片在上 一直会有个 query 为空的占有,杀死后 update 也会被干掉
1
Girlphobia 2020 年 1 月 16 日 via Android
听起来就像是这个表事务写入的某个锁没释放。
我不是 DBA,我瞎说的。 |
2
zuoakang 2020 年 1 月 16 日
连接池吧
|
3
dyllen 2020 年 1 月 16 日
是不是代码里面写的发生死锁了,我之前就有遇到,代码问题导致同一个事物里面出现死锁。
|
4
CallMeReznov 2020 年 1 月 16 日
表特别大?而且没建或者索引长时间没更新?
查询时 IO 情况如何? |
6
julyone OP @Girlphobia 有点像这个现象 但是没遇到这么奇怪的
|
7
julyone OP @CallMeReznov update 的并没有发生很高的 IO 估计就没有执行更新 一直在某个地方卡住了一样 表是有点大 只是更新一行数据 innodb 引擎 也是锁行啊
|
8
SjwNo1 2020 年 1 月 16 日
update 怎么锁表了?是不是没用索引
另外,可能是死锁了 |
10
SjwNo1 2020 年 1 月 16 日
select @@autocommit; 看看, 是不是为 0 了我怀疑, 不过重启了应该没啥问题
|
12
SjwNo1 2020 年 1 月 16 日
行吧~ 删库吧
|
13
0dJ6Tu8Za734L89T 2020 年 1 月 16 日
行吧~ 删库吧
|
14
wangyzj 2020 年 1 月 16 日
隔离级别呢?
试过重建表和索引么? |
15
liuxu 2020 年 1 月 16 日
别猜了,贴 mysql 的 log 吧
|
16
lenmore 2020 年 1 月 16 日
有 SQL 执行完了,但是事务没提交。
可能是应用启了事务,但是异常退出或者在做什么耗时的从操作,一直没 commit |
17
abccccabc 2020 年 1 月 16 日
有可能是事务没有提交导致的,以前我公司也出现过大面积的这种情况。检查未提交 的 SQL 对应的程序。改吧。没啥好办法。
|
18
ETO 2020 年 1 月 16 日
楼主解决好了,@我一下
|