小编给大家分享一下ONLINE DDL INPLACE和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锁的区别有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!
--结束END--
本文标题: ONLINE DDL INPLACE和COPY两种方式MDL锁的区别有哪些
本文链接: https://www.lsjlt.com/news/63105.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-16
2024-05-16
2024-05-16
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0