华为云计算 云知识 什么是MDL锁
什么是MDL锁

MDL锁(Metadata Lock),即元数据锁。元数据指的是描述数据的数据,对数据及信息资源的描述性信息,在 数据库 中元数据即数据字典信息,包括db,table,function,procedure,trigger,event等。

MySQL从 5.5版本开始引入MDL锁,MDL锁主要为了保证元数据的一致性(主要是保证DDL操作与DML操作之间的一致性),用于处理不同线程操作同一元数据对象的同步与互斥问题,在各个业务场景中会十分频繁地使用到。

具体而言,MySQL引入MDL锁可以解决如下问题:一是事务隔离问题,比如在可重复读隔离级别下,会话A在2次查询期间,会话B对表结构做了修改,2次查询结果就会不一致,无法满足可重复读的要求。二是 数据复制 问题,比如会话A执行了多条更新语句期间,另外一个会话B做了表结构变更并且先提交,就会导致slave在重做时,先重做alter,再重做update时就会出现复制错误的现象。


上一篇:对话机器人服务应用场景 下一篇:云测有什么特性