
今天突然发现 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-01-16 09:24:29 +08:00 via Android 听起来就像是这个表事务写入的某个锁没释放。 我不是 DBA,我瞎说的。 |
2 zuoakang 2020-01-16 09:53:23 +08:00 连接池吧 |
3 dyllen 2020-01-16 10:00:33 +08:00 是不是代码里面写的发生死锁了,我之前就有遇到,代码问题导致同一个事物里面出现死锁。 |
4 CallMeReznov 2020-01-16 10:03:58 +08:00 表特别大?而且没建或者索引长时间没更新? 查询时 IO 情况如何? |
5 julyone OP |
6 julyone OP @Girlphobia 有点像这个现象 但是没遇到这么奇怪的 |
7 julyone OP @CallMeReznov update 的并没有发生很高的 IO 估计就没有执行更新 一直在某个地方卡住了一样 表是有点大 只是更新一行数据 innodb 引擎 也是锁行啊 |
8 SjwNo1 2020-01-16 10:09:50 +08:00 update 怎么锁表了?是不是没用索引 另外,可能是死锁了 |
10 SjwNo1 2020-01-16 10:52:14 +08:00 select @@autocommit; 看看, 是不是为 0 了我怀疑, 不过重启了应该没啥问题 |
12 SjwNo1 2020-01-16 11:09:56 +08:00 行吧~ 删库吧 |
13 0dJ6Tu8Za734L89T 2020-01-16 11:11:09 +08:00 行吧~ 删库吧 |
14 wangyzj 2020-01-16 13:52:33 +08:00 隔离级别呢? 试过重建表和索引么? |
15 liuxu 2020-01-16 14:39:23 +08:00 别猜了,贴 mysql 的 log 吧 |
16 lenmore 2020-01-16 16:13:05 +08:00 有 SQL 执行完了,但是事务没提交。 可能是应用启了事务,但是异常退出或者在做什么耗时的从操作,一直没 commit |
17 abccccabc 2020-01-16 17:36:46 +08:00 有可能是事务没有提交导致的,以前我公司也出现过大面积的这种情况。检查未提交 的 SQL 对应的程序。改吧。没啥好办法。 |
18 ETO 2020-01-16 18:31:45 +08:00 楼主解决好了,@我一下 |