mysql 原理 ~ DDL之mdl锁

一 简介: MDL锁

二 具体

1 MDL锁
   1 增删查改 申请MDL读锁
   2 ddl语句
      1. 拿MDL写锁
      2. 降级成MDL读锁
      3. 真正做DDL
      4. 升级成MDL写锁
      5. 释放MDL锁

三 问题
1 为什么同一张表的多个DDL不能并行执行
   解答:1 MDL读锁是互相兼容的,可以有多个增删查改
2 MDL写锁是互斥的,只能有一个表的DDL
  问题2 为什么有时候DDL会卡住
   解答:1 MDL读写锁之间是互斥的,所以如果DDL卡住,就证明有事务在执行,不能申请MDL写锁
3 常见卡住的场景 
   1 非常频繁的业务高峰期
   2 有慢查询把持着MDL读锁
4 为什么需要MDL锁
   解答:当事务本身执行的时候理论上是不能容忍表结构在中途发生改变的

转载于:https://www.cnblogs.com/danhuangpai/p/10020364.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值