ONLINE DDL INPLACE和COPY两样方式MDL锁的区别有哪些
发布时间:2021-12-26 13:23:23 所属栏目:MySql教程 来源:互联网
导读:小编给大家分享一下ONLINE DDL INPLACE和COPY两种方式MDL锁的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! MySQL online DDL分为INPLACE和COPY两种方式,通过
小编给大家分享一下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锁的区别有哪些”这篇文章的所有内容,感谢各位的阅读! (编辑:重庆站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |