暂无图片
mysql锁等待
我来答
分享
坤易
2020-01-14
mysql锁等待

我的会话一执行了lock table test read;会话二执行了update test set name=‘test’ where id=2;会话二处于等待,请问从哪个视图能够查到这个锁等待的情况?innodb_trx没有记录;innodb_locks无记录;innodb_lock_waits无记录。

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
llzx373

select * from metadata_locks\G

5.7版本的话在performance schema中。

暂无图片 评论
暂无图片 有用 0
执剑者

show open tables where in_use>0;

show processlist;

暂无图片 评论
暂无图片 有用 0
坤易

metadata_locks表中无数据,好像开启这个需要打开一些开关才行。
show open tables 能看到有人在用,但是看不到是谁在用。

暂无图片 评论
暂无图片 有用 0
执剑者

mysql社区版是无法查看DML锁的详细信息的,只能根据processlist信息找出阻塞会话之间的关系。

暂无图片 评论
暂无图片 有用 0
小菜DBA

请出示你的数据库版本,mysql5.6是无法查看mdl锁的,如果是mysql5.7+版本,可以通过查询 performance_schema.metadata_lock 进行观察,关键字 SHARED_READ

暂无图片 评论
暂无图片 有用 0
Cui Hulong

##关联一下语句看看行不行,以下3张表5.6 都应该存在的
select d.trx_started ,a.THREAD_ID, b.PROCESSLIST_ID,a.SQL_TEXT
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 a.SQL_TEXT like ‘%alter%’
##ddl语句加进条件
order by d.trx_started ;

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