当前位置:   article > 正文

mysql online ddl原理_MySQL Online DDL 方案剖析

online ddl原理

一、常见的几种方案

1.1 MySQL源生的IN-PLACE ONLINE DDL

5.5,5.6 开始支持

5.7 支持的更好,有更多ddl操作支持online

8.0 支持快速加列功能

1.2 第三方工具

1. pt-online-schema-change

2. gh-ost

1.3 slave 先ddl,后切换主从

二、方案剖析

2.1 MySQL源生的IN-PLACE ONLINE DDL

原理

原理比较复杂,不一一解读。但是中间有几个重要的过程:

1. 加一会排它锁,开启战场,并释放排它锁

2. 记录ddl期间产生的增量dml(大小由innodb_online_alter_log_max_size控制)

3. 应用这些增量dml

4. 再加一会排它锁,清理战场,释放排它锁

这里关心的问题:

1. 如果再ddl期间,innodb_online_alter_log_max_size的大小被占满,会有怎样的后果?

2. 如果DDL期间,被强行终止了,会有怎么样的后果?

优点

1. 官方出品,原生态,品质有保障

缺点

1. 有所等待风险

2. innodb_online_alter_log_max_size 是有限制的

3. 有可能造成主从延迟

4. 不是所有的ddl都是online的,对ddl类型有要求

哪些DDL可以online (基于5.7的官方文档

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/733793
推荐阅读
相关标签
  

闽ICP备14008679号