V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
julyone
V2EX  ›  MySQL

mysql5.6 update 锁表后 kill 事务然后重启 mysql 导致后续同样的 update 语句都会出现超时

  •  
  •   julyone · 2020-01-16 09:17:06 +08:00 · 4401 次点击
    这是一个创建于 1781 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天突然发现 mysql 更新缓慢而且失败 SELECT * FROM information_schema.innodb_trx;发现有长时间 wait 的 update 语句,遂直接 kill,重启了一下 mysql。 后续发现该表的 update 语句都会超时,一直处于 wait 情况。其他表良好。

    https://s2.ax1x.com/2020/01/16/lje0eK.png

    查询情况的图片在上 一直会有个 query 为空的占有,杀死后 update 也会被干掉

    18 条回复    2020-01-16 18:31:45 +08:00
    Girlphobia
        1
    Girlphobia  
       2020-01-16 09:24:29 +08:00 via Android
    听起来就像是这个表事务写入的某个锁没释放。

    我不是 DBA,我瞎说的。
    zuoakang
        2
    zuoakang  
       2020-01-16 09:53:23 +08:00
    连接池吧
    dyllen
        3
    dyllen  
       2020-01-16 10:00:33 +08:00
    是不是代码里面写的发生死锁了,我之前就有遇到,代码问题导致同一个事物里面出现死锁。
    CallMeReznov
        4
    CallMeReznov  
       2020-01-16 10:03:58 +08:00
    表特别大?而且没建或者索引长时间没更新?
    查询时 IO 情况如何?
    julyone
        5
    julyone  
    OP
       2020-01-16 10:04:56 +08:00
    @dyllen
    @zuoakang
    没有哦 这个发生之后我直接在 Navicat 客户端执行语句也不行 而且连这个表都不能删除
    julyone
        6
    julyone  
    OP
       2020-01-16 10:05:29 +08:00
    @Girlphobia 有点像这个现象 但是没遇到这么奇怪的
    julyone
        7
    julyone  
    OP
       2020-01-16 10:07:09 +08:00
    @CallMeReznov update 的并没有发生很高的 IO 估计就没有执行更新 一直在某个地方卡住了一样 表是有点大 只是更新一行数据 innodb 引擎 也是锁行啊
    SjwNo1
        8
    SjwNo1  
       2020-01-16 10:09:50 +08:00
    update 怎么锁表了?是不是没用索引
    另外,可能是死锁了
    julyone
        9
    julyone  
    OP
       2020-01-16 10:12:01 +08:00
    @SjwNo1 用索引了呀 死锁可能性也有 后续情况是表都没办法删除了
    SjwNo1
        10
    SjwNo1  
       2020-01-16 10:52:14 +08:00
    select @@autocommit; 看看, 是不是为 0 了我怀疑, 不过重启了应该没啥问题
    julyone
        11
    julyone  
    OP
       2020-01-16 11:09:07 +08:00
    @SjwNo1 排查过 是 1
    SjwNo1
        12
    SjwNo1  
       2020-01-16 11:09:56 +08:00
    行吧~ 删库吧
    SpencerCJH
        13
    SpencerCJH  
       2020-01-16 11:11:09 +08:00
    行吧~ 删库吧
    wangyzj
        14
    wangyzj  
       2020-01-16 13:52:33 +08:00
    隔离级别呢?
    试过重建表和索引么?
    liuxu
        15
    liuxu  
       2020-01-16 14:39:23 +08:00
    别猜了,贴 mysql 的 log 吧
    lenmore
        16
    lenmore  
       2020-01-16 16:13:05 +08:00
    有 SQL 执行完了,但是事务没提交。
    可能是应用启了事务,但是异常退出或者在做什么耗时的从操作,一直没 commit
    abccccabc
        17
    abccccabc  
       2020-01-16 17:36:46 +08:00
    有可能是事务没有提交导致的,以前我公司也出现过大面积的这种情况。检查未提交 的 SQL 对应的程序。改吧。没啥好办法。
    ETO
        18
    ETO  
       2020-01-16 18:31:45 +08:00
    楼主解决好了,@我一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2718 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 09:27 · PVG 17:27 · LAX 01:27 · JFK 04:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.