ONLINEDDLINPLACE和COPY两种方式MDL锁的区别有哪些

小编给大家分享一下ONLINE DDL INPLACE和COPY两种方式MDL锁的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

目前创新互联已为上千的企业提供了网站建设、域名、虚拟空间、网站运营、企业网站设计、广州网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

MySQL online DDL分为INPLACE和COPY两种方式,通过在ALTER语句的ALGORITHM参数指定,两种方式除了实现方式不同外,整个过程中MDL上锁也是不一样的。

对于alter table test.t1 add column name varchar(10), algorithm=copy;,alter用copy到临时的方式来做。整个过程中MDL顺序是这样的:
prepare阶段:先申请MDL_SHARED_UPGRADABLE锁,然后升级到MDL_SHARED_NO_WRITE锁
alter阶段:MDL_SHARED_NO_WRITE锁
commit阶段:升级到MDL_EXCLUSIVE锁

对于alter table test.t1 add column name varchar(10), algorithm=inplace;,如果alter使用inplace算法的话,整个过程中MDL加锁顺序是这样的:
prepare阶段:先申请MDL_SHARED_UPGRADABLE锁,然后升级到MDL_EXCLUSIVE锁,再降级到MDL_SHARED_UPGRADABLE锁
alter阶段:MDL_SHARED_UPGRADABLE
commit阶段:升级到MDL_EXCLUSIVE锁

MDL_SHARED_UPGRADABLE跟select获取的SR锁和dml获取的SW锁都兼容
MDL_SHARED_NO_WRITE跟select获取的SR锁兼容,跟dml获取的SW锁冲突
MDL_EXCLUSIVE跟select获取的SR锁和dml获取的SW锁都冲突

以上是“ONLINE DDL INPLACE和COPY两种方式MDL锁的区别有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


本文题目:ONLINEDDLINPLACE和COPY两种方式MDL锁的区别有哪些
文章路径:http://bzwzjz.com/article/peoedh.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站建设开发 重庆网站建设 移动手机网站制作 网站建设 网站制作报价 成都网站建设 成都网站建设 app网站建设 成都定制网站建设 网站制作 成都网站建设公司 四川成都网站设计 成都网站建设 成都商城网站建设 成都模版网站建设 成都营销网站建设 成都h5网站建设 成都网站建设 成都网站设计 成都网站设计公司 成都网站设计制作公司 响应式网站设计方案