暂无图片
MySQL:关于 MDL 的读锁与写锁
我来答
分享
秦朝阳
2021-09-08
MySQL:关于 MDL 的读锁与写锁

锁.png
Session A 与 Session B 均持有【MDL 读锁】,读锁间不互斥,故可同时读取表 T,由于 session A 持有的【MDL 读锁】尚未释放,致使 Session C 因无法获取【MDL 写锁】而阻塞,由于 Session D 无法获取【MDL 读锁】,致使 Session D 同样被阻塞

我的问题是,Session C 阻塞是因为无法获取【MDL 写锁】,那 Session D 请求【MDL 读锁】也不行也会被阻塞,这是什么机制呢?

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

你这个应该是C锁了D吧?你C做的是DDL操作,它会锁全表,要等C执行完后,D才能读。

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

元数据锁会锁全表,后续就不能继续对该表进行操作
需要等A事务结束,C执行完,D才能读

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