MySQL笔记-MDL锁(metadata lock)
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
MySQL笔记-MDL锁(metadata lock)相关推荐
- Mysql 死锁过程及案例详解之元数据锁MetaData Lock
Mysql数据锁MetaData Lock 元数据锁MetaData Lock 元数据锁MetaData Locks的主要作用是在执行查询或者发起事务时元数据结构受到保护,即不被修改. MetaDat ...
- 【华为云技术分享】华为云MySQL新增MDL锁视图特性,快速定位元数据锁问题
MDL锁(Metadata Lock),即元数据锁.元数据指的是描述数据的数据,对数据及信息资源的描述性信息,在数据库中元数据即数据字典信息,包括db,table,function,procedure ...
- MDL锁导致mysql夯住_MySQL MetaData Lock 案例分享
前言:今天开发童鞋遇到一个奇怪的问题,在测试环境里面执行drop database dbname发现一直夯住不动,等了很久也没有执行,于是问题就到我这里了 一.什么是MetaData Lock? Me ...
- 技术分享 | MySQL 的 MDL 锁解惑
作者:刘晨 网名 bisal ,具有十年以上的应用运维工作经验,目前主要从事数据库应用研发能力提升和技术管理相关的工作,Oracle ACE ,腾讯云TVP,拥有 Oracle OCM & O ...
- MySQL的MDL锁解惑
前几天,某个使用MySQL的应用,出现了一些问题,表象上是应用请求无响应,通过检索数据库,发现很多会话执行的SQL提示"Waiting for table metadata lock&quo ...
- mysql笔记(锁、事务、性能优化、压测结果)
Mysql 该笔记,主要根据kkb课程并结合网上资料和自己的理解而形成. 一.Mysql架构 1.1 逻辑架构 这是从网上copy过来的图.网上一些教程会把mysql也进行分层. 连接层:Connec ...
- MySQL笔记-InnoDB中Record Lock与Gap Lock
锁:用于在多个事务访问同一个对象时根据这些操作访问同一对象的先后次序给事务排序. 不同数据库的锁实现: InnoDB:行级锁: Oracle:行级锁: MyISAM:表级锁: Microsoft SQ ...
- mysql MDL锁如何解决_MySQL元数据锁MDL
[TOC] > 除了我们经常熟知的共享锁和排他锁外,MySQL数据库还有一种锁叫元数据锁,主要为了保证元数据的一致性,用于处理不同线程操作同一数据对象的同步与互斥问题. # 一.元数据 所谓元数 ...
- mysql出现waiting_MySQL出现Waiting for table metadata lock的原因以及解决方法
MDL简述 为了在并发环境下维护表元数据的数据一致性,在表上有活动事务(显式或隐式)的时候,不可以对元数据进行写入操作.因此从MySQL5.5版本开始引入了MDL锁(metadata lock), ...
最新文章
- 有关CPU与内存的那些事
- 【计算理论】计算复杂性 ( 小 O 记号 | 严格渐进上界 | 分析算法的时间复杂度 )
- 趣学python3(23)-队列
- React入门-9.redux你好
- python结束后找什么工作_python学习结束后找什么工作?
- 披星戴月地辛苦割胶或成历史,海南胶园迎来这一“神器”!
- Workstation-CentOS-XShell-YUM源 JAVA大数据Week5-DAY1-linux
- c语言编程2的10次方,疯狂编程,计算2的10万次方
- 智慧城管数字孪生IOC系统
- OpenGL渲染YUV420P
- 计算机中怎样重新安装ps,什么样的电脑适合安装高版本Photoshop?该如何安装和卸载PS呢?...
- 腾讯实习生腾讯云后台一面面经
- 向前迈进!走入GC世界:G1 GC原理深入解析
- 《晨间日记的奇迹读》书笔记
- 轮循与连接-- 细雪之舞
- 蝴蝶展翅鸿蒙云飞,关于蝴蝶的伤感句子 开辟鸿蒙,谁为情种?都只为风月情浓...
- 视觉感知特性 【1】人类视觉系统的信息处理机制的4个特性
- php网页怎么和PLC通讯,plc网络通讯方式和协议
- 基于微信小程序的校园自助打印系统小程序
- python index out of bounds_错误:索引2超出大小为1的轴0的界限
热门文章
- UVa 439 - Knight Moves
- Oracle创建表空间及用户
- [转]Android应用签名
- 三十、详测 Generics Collections: TObjectList、TObjectQueue、TObjectStack
- 零基础学习什么编程语言比较合适?别的不说,听说大佬都学了这个!
- 今天一看,自己发的文章原来这么多了。openeim
- 使用命令重定向操作符 (Redirection Operators)
- SEH in ASM 研究(一)
- .net控件FreeTextBox使用方法
- 工科神器matlab高校遭禁用,网友:关我p事,python可取而代之