云数据库 RDS-MySQL原生的DDL工具:Inplace算法

时间:2024-12-20 17:08:38

Inplace算法

Inplace采用在原表上进行更改的方法,不需要生成临时表,不需要进行数据copy的过程。可分为两类:

  • rebuild:需要重建表(重新组织聚簇索引)。比如optimize table、添加索引、添加/删除列、修改列NULL/NOT NULL属性等。
  • no-rebuild:不需要重建表,只需要修改表的元数据,比如删除索引、修改列名、修改列默认值、修改列自增值等。

对于rebuild方式实现Online是通过缓存DDL期间的DML,待DDL完成之后,将DML应用到表上来实现的。由于MDL写锁在拷贝数据期间降为MDL读锁,DML操作在DDL执行期间几乎不会被阻塞。

support.huaweicloud.com/usermanual-rds/rds_bp_0023.html