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

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

Copy算法

  1. 按照原表定义创建一个新的临时表。
  2. 对原表加写锁(禁止DML)。
  3. 1建立的临时表执行DDL。
  4. 将原表中的数据copy到临时表。
  5. 释放原表的写锁。
  6. 将原表删除,并将临时表重命名为原表。

采用copy方式期间需要锁表,禁止DML写操作。当Lock = Shared时允许读操作,不允许写操作;当Lock = Exclusive时,读写操作都被禁止,因此不能实现Online。但这种方法可以应用在几乎全部DDL场景下。

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