mysql online ddl
2020-12-17 本文已影响0人
放开那个BUG
看过这些文章:
http://blog.gerryyang.com/mysql/2018/09/28/mysql-online-ddl.html
https://juejin.cn/post/6854573213167386637
https://zhuanlan.zhihu.com/p/115277009
文章之后,我觉得 mysql 5.x 的 online ddl 只是在 prepare 阶段、commit 阶段会有写锁,但是在真正执行的阶段都是读锁,不会阻塞读写。online ddl 过程如下:
1、拿 MDL 写锁
2、降级成 MDL 读锁
3、真正做 DDL
4、升级成 MDL 写锁
5、释放 MDL 锁。
1,2,4,5 阶段没有表冲突,执行时间非常短,只是第3阶段占用了 DDL 的绝大部分时间,这个期间表可以正常读写数据。
最后,还想说一点,通过 DBA 得知,8.0 加列只需要一秒,牛逼