MySQL笔记-MDL锁(metadata lock)
发布日期:2021-06-30 10:43:04
浏览次数:3
分类:技术文章
本文共 681 字,大约阅读时间需要 2 分钟。
MySQL5.5版本引入了MDL锁(metadata lock),用于解决或保证DDL操作与DML操作之间的一致性。在mysqldump的时候不能做DDL操作,会提示waiting for table metadata lock;做DDL操作没办法保护事务,因此引入了metadata lock。如下时序图:
如果没有MDL锁保护,那么session2,就会直接执行DDL操作,这样会导致session3有问题。MySQL5.5版本引入了MDL锁保护了这种情况的发生,由于session1开启了查询,那么就获得了MDL锁,锁的模式为SHARED_READ,session2要执行DDL,需要获得X锁,两者互斥,所以session2会等待。
这里有一点要注意:
做select查询就会加MDL锁。
这里有一点要提下,mysql中,有时候select,drop直接输入就马上生效,是因为有auto_commit参数被开启了。
下面查询下MySQL库中是否开启了自动提交:
可见autocommit为ON说明默认是开启的。
这里来演示下MDL锁,关于t1表的表结构:
desc t1;
数据如下:
select * from t1;
在session1中开启事务,查询:
begin;select * from t1;
在session2中删除表就会被阻塞:
begin;drop table t1;
下面来查看下进程的状态:
show processList;
从中可见drop table此时的状态为 waiting for table metadata lock
转载地址:https://it1995.blog.csdn.net/article/details/105937619 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月19日 20时09分33秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
图像去噪(包含修正的阿尔法均值滤波及通用滤波方法代码)
2019-04-30
SVM进行人脸检测
2019-04-30
C++学习笔记
2019-04-30
图像处理学习笔记
2019-04-30
Machine Learning Onramp on MATLAB 学习笔记
2019-04-30
Machine Learning with MATLAB 1.1 to 2.2
2019-04-30
Learning DSP with MATLAB
2019-04-30
用MATLAB实现m序列的生成(MATLAB 2021a适用)
2019-04-30
MATLAB函数备忘(定期更新)
2019-04-30
13行MATLAB代码实现网络爬虫 爬取NASA画廊星图
2019-04-30
MATLAB指定路径保存图片方法
2019-04-30
Python一键获取微信推送封面图
2019-04-30
油猴脚本:微信推送浏览功能拓展
2019-04-30
JavaScript DOM对象操作详解
2019-04-30
JavaScript 表单操作与MD5加密
2019-04-30
JAVA学习笔记4 - 循环与分支结构
2019-04-30
JAVA学习笔记6 - 数组
2019-04-30
JAVA学习笔记8 - Stream 和 File I/O
2019-04-30
JAVA学习笔记9 - 异常
2019-04-30