MySQL Metadata Lock详解
Metadata Lock 的作用:
要直接说出Metadata Lock 的作用、以我目前的文字功底是不行的、好在我可以通过一个例子来说明。
假设session 1 在正在执行如下的SQL语句
select * from t ;
session 2 想要执行
drop table t;
drop table t ; 这句SQL是不能得到马上执行的、因为session 1 还用着t表。
Metadata Lock 是为了防止在有dml执行的过程中,有ddl修改dml中用到的对象,所以不管是dml还是ddl
在执行前都要得到语句所涉及对象的Metadata Lock ;不同的是dml要得到的是S锁、而ddl是X锁。
上面的例子中通过show processlist 可以看到如下内容
show processlist;
+----+-------------+-----------+--------+---------+------+---------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------------+-----------+--------+---------+------+---------------------------------+------------------+
| 1 | jianglexing | localhost | tempdb | Sleep | 23 | | NULL |
| 2 | jianglexing | localhost | tempdb | Query | 11 | Waiting for table metadata lock | drop table t |
| 3 | jianglexing | localhost | NULL | Query | 0 | starting | show processlist |
+----+-------------+-----------+--------+---------+------+---------------------------------+------------------+
Metadata Lock 的作用范围:
所在数据库中的对象、如 table、schema、trigger ...
----------------------------------------------------------------------------------------------


MySQL Metadata Lock详解的更多相关文章
- Mysql加锁过程详解(8)-理解innodb的锁(record,gap,Next-Key lock)
Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...
- Mysql加锁过程详解(4)-select for update/lock in share mode 对事务并发性影响
Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...
- Mysql 三大特性详解
Mysql 三大特性详解 Mysql Innodb后台线程 工作方式 首先Mysql进程模型是单进程多线程的.所以我们通过ps查找mysqld进程是只有一个. 体系架构 InnoDB存储引擎的架构如下 ...
- mysql metadata lock(二)
上一篇<mysql metadata lock(一)>介绍了为什么引入MDL,MDL作用以及MDL锁导致阻塞的几种典型场景,文章的最后还留下了一个小小的疑问.本文将更详细的介绍MDL,主要 ...
- 【转】Nginx+php-fpm+MySQL分离部署详解
转:http://www.linuxidc.com/Linux/2015-07/120580.htm Nginx+php-fpm+MySQL分离部署详解 [日期:2015-07-26] 来源:Linu ...
- Mysql加锁过程详解(9)-innodb下的记录锁,间隙锁,next-key锁
Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...
- Mysql加锁过程详解(1)-基本知识
Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...
- Mysql加锁过程详解(2)-关于mysql 幻读理解
Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...
- Mysql加锁过程详解(3)-关于mysql 幻读理解
Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...
随机推荐
- hadoop lzo应用
几种压缩方式对比: LZO example: https://github.com/twitter/hadoop-lzo/blob/master/src/test/java/com/hadoop/ma ...
- 延迟加载-association来实现
resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 需求: 如果查询订单并且关 ...
- 获取ul下li标签里点击的是哪一个li并获取li里a标签的值
$("ul li").click(function(){ //获取当天月份 ).text(); ,) alert(month); }); <!doctype html> ...
- Aerospike系列:2:商业版和社区版的比较
http://www.aerospike.com/products-services
- http协议版本历史
1.http 0.9 2.http 1.0 3. http 1.1 4.http 2.0 推送:主动发送js.css推送到浏览器. 二进制流:可以并行发送数据. 2019.3.18补充: (1)htt ...
- ViewPage+frament不预载入下一个Frament数据解决的方法
在做一个ViewPage+Frament 滑动数效果,当滑动到每一页时载入哪一页的数据,可是ViewPage会预载入下一也数据.这个问题之前做项目是一直未解决,今天找到一个方法一下子就解决的这个问题, ...
- 输出数组第k大的元素
用快速排序的思想输出数组第k大的元素: #include<iostream> #include<algorithm> using namespace std; //递归实现:返 ...
- Windows TCP/IP 临时、保留和封锁端口行为
由网络专家发布 转自:http://blog.163.com/abslh123@126/blog/static/792137962008628105919348/ 本文介绍 Windows 套接字应用 ...
- 基于源码编译openssl
openssh依赖于openssl,由于ssl频繁曝出漏洞,牵扯到openssh.而自身也存在漏洞... 00.下载openssl https://www.openssl.org/source/ ht ...
- 基于Pygame写的翻译方法
发布时间:2018-11-01 技术:pygame+easygui 概述 实现一个翻译功能,中英文的互相转换.并可以播放翻译后的内容. 翻译接口调用的是百度翻译的api接口. 详细 代码下载: ...