开发者社区> 问答> 正文

MDL 的类型由 enum_mdl_type 表示,最常用的类型包括那些?

MDL 的类型由 enum_mdl_type 表示,最常用的类型包括那些?

展开
收起
xi哈啥哈 2022-04-30 09:19:06 419 0
来自:阿里技术
1 条回答
写回答
取消 提交回答
  • MDL_SHARED(S),可以共享访问对象的元数据,比如 SHOW CREATE TABLE 语句
    MDL_SHARED_READ(SR),可以共享访问对象的数据,比如 SELECT 语句
    MDL_SHARED_WRITE(SW),可以修改对象的数据,比如 INSERT / UPDATE 语句
    MDL_SHARED_UPGRADABLE(SU),可升级的共享锁,后面可升级到更强的锁(比如 X 锁,阻塞并发访问),比如 DDL 的第一阶段
    MDL_EXCLUSIVE(X),独占锁,阻塞其他线程对该对象的并发访问,可以修改对象的元数据,比如 DDL 的第二阶段
    

    不同的查询语句通过请求不同类型的 MDL,结合不同类型的 MDL 之间灵活定制的兼容性,就可以对相互冲突的语句进行并发控制。对于同一对象而言,不同类型的 MDL 之间的默认兼容性如下所述。

    2022-05-08 11:16:59
    赞同 展开评论 打赏
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载