暂无图片
mysql阻塞疑问,发现dml语句被select语句阻塞的情况,且select不是for update
我来答
分享
暂无图片 匿名用户
mysql阻塞疑问,发现dml语句被select语句阻塞的情况,且select不是for update

mysql阻塞疑问,发现dml语句被select语句阻塞的情况,且select不是for update,并且select的表跟dml的表不是同一张表。。。麻烦各位大神解答一下疑惑,详细图片如下:

通过

select * from sys.innodb_lock_waits可以看到有个阻塞DML等待,阻塞他的pid是147

通过下面查询可以看到147在运行的事务是一个查询

 
SELECT a.sql_text,
       c.id,
       d.trx_started
FROM   performance_schema.events_statements_current a
       join performance_schema.threads b
         ON a.thread_id = b.thread_id
       join information_schema.processlist c
         ON b.processlist_id = c.id
       join information_schema.innodb_trx d
         ON c.id = d.trx_mysql_thread_id
where c.id=147
ORDER  BY d.trx_started

我们同事尝试kill掉147后确实阻塞就没有了,现在就是搞不清楚为啥会发生阻塞,请大神们指点一下

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
刘贵宾

过程中是否有ddl语句执行?

暂无图片 评论
暂无图片 有用 1
张sir

有这么一种可能,你的147会话执行了一个事务,这个事务里包含对表ACT_HI_VARINST的操作,select只是这个事务种的一个sql而已,真正堵塞这个会话的sql是147这个事务中的某一个sql,并不是select。

暂无图片 评论
暂无图片 有用 0
chengang

查看一下 data_locks 表呢?


有可能 是元数据锁导致的

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏