初识MDL锁

简介: 初识MDL锁

       MDL全称为 meta data lock,中文称作元数据锁,这是从MySQL5.5 开始引入的锁,MDL是为了解决DDL操作和DML操作之间的一致性。从锁的作用范围上来说,MDL算是一种表级锁,是一个server层的锁。

       出现场景:当我们通过alter 语句更新一张表的时候,同时又针对这张表执行了查询语句,假设两者同时执行,那么将来查询到的结果可能就不是我们想要的结果,也就是数据的一致性出了问题。

       为了解决这个问题,从MySQL5.5 开始推出了MDL。

       MDL加锁过程是系统自动控制,无法直接干预,也不需要直接干预,当我们对一个表做增删改查操作的时候,会自动加MDL读锁。当我们要更新表结构的时候,加MDL写锁。加读锁则所有线程可正常读表的元数据,并且读锁不影响表的增删改查操作,只是不能修改表的结构;而加写锁则只拥有锁的线程可以读写元数据,即只有拥有锁的线程才能更新表结构,其他线程不能修改表结构也不能执行相应的增删改查。

online DDL

       MySQL5.6开始引入了online DDL,顾名思义,从名字上就可以看出来是可以在线执行DDL,不和其他操作冲突,具体执行流程如下:

1.DDL(数据库表结构修改)操作需要首先获取MDL写锁。

2.接下来将MDL写锁降级成MDL读锁。

3.做DDL操作,也是最耗时的,但由于此时我们持有的是MDL读锁,因此并不会阻塞其他的增删改查操作。

4.做完DDL操作之后,接下来将MDL读锁升级成MDL写锁。

5.释放MDL锁

注:所有的DDL语句都会导致事务的隐式提交,也就意味着带有DDL语句的事务将来没有办法回滚。

相关文章
|
5月前
|
人工智能 机器人 API
🤖 AstrBot 安卓 App:让每一个普通人都能拥有自己的 AI 聊天机器人
🤖 AstrBot 安卓 App:让每一个普通人都能拥有自己的 AI 聊天机器人
1878 5
🤖 AstrBot 安卓 App:让每一个普通人都能拥有自己的 AI 聊天机器人
|
存储 算法 安全
深入理解C++中的std::chrono库:持续时间的比较与应用
深入理解C++中的std::chrono库:持续时间的比较与应用
653 1
|
应用服务中间件 Linux nginx
|
7月前
|
存储 缓存 安全
阿里云企业级云服务器收费标准、选型指南与活动价格参考
2025年租用阿里云企业级云服务器,用户可以选择多种实例类型和配置,以满足不同规模和需求的企业应用。目前在阿里云的活动中提供了包括通用算力型u1、通用型g9i与g8y、计算型c9i与c8y、内存型r9i等在内的多种企业级云服务器实例,例如,通用算力型u1实例2核4G5M带宽80G ESSD Entry云盘特惠价199元1年,计算型c9i实例2核4G活动价为1686.70元/1年起,通用型g9i实例2核8G活动价为2097.69元/1年起。本文将详细解析阿里云企业级云服务器的价格体系,涵盖实例规格、收费标准与活动及选型指南等,以供了解和参考。
|
9月前
|
存储 安全 vr&ar
AR眼镜石油化工巡检:让设备说话,让巡检更靠谱
在石油化工巡检中,AR眼镜方案通过直观技术辅助人工判断,提升巡检效率与准确性,保障作业安全。结合工业级硬件与智能功能,助力巡检人员高效完成任务。
|
数据采集 机器学习/深度学习 算法
Python基于决策树多分类模型实现水色图像的水质评价
Python基于决策树多分类模型实现水色图像的水质评价
|
传感器 数据安全/隐私保护 数据格式
STM32CubeMX DHT11温湿度传感器
STM32CubeMX DHT11温湿度传感器
1912 12
|
数据可视化 程序员 开发工具
小白也能玩转Git:从入门到实战详细教程
小白也能玩转Git:从入门到实战详细教程
490 0
|
安全 Linux
Linux【问题记录 03】阿里云+腾讯云服务器的 kdevtmpfsi(H2Miner挖矿蠕虫变种)病毒处理(5个详细步骤)
Linux【问题记录 03】阿里云+腾讯云服务器的 kdevtmpfsi(H2Miner挖矿蠕虫变种)病毒处理(5个详细步骤)
473 1
|
JavaScript 测试技术
Selenium报错ElementNotInteractableException元素不可交互,该如何解决?
本文介绍了Selenium测试中遇到的`ElementNotInteractableException`异常,该异常通常由于元素被遮挡、不可见、被禁用或位于框架内导致。解决方法包括等待元素可交互、确保元素可见、检查元素状态及切换到正确框架。示例代码展示了如何使用显式等待策略处理此异常,以提高测试稳定性。

热门文章

最新文章