MySQL Online DDL 常用情况说明
mysql5.7 添加字段:
ALTER TABLE tb_name ADD COLUMN column_name data_type, ALGORITHM=INPLACE;
mysql8.0 添加字段:
ALTER TABLE tb_name ADD COLUMN column_name data_type, ALGORITHM=INSTANT;
官方文档
https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html
https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-operations.html
常用操作 | MySQL5.7 | MySQL8.0 | ||||||||
重建表 | 复制方式 | 并行DML | 只修改元数据 | 返回时间 | 重建 表 | 复制方式 | 并行DML | 只修改元数据 | 返回时间 | |
添加字段 | 是 | INPLACE | 是 | 否 | 等待返回 | 否 | INPLACE | 是 | 否 | 立即返回 |
删除字段 | 是 | INPLACE | 是 | 否 | 等待返回 | 是 | INPLACE | 是 | 否 | 等待返回 |
修改列名 | 是 | 等待返回 | 是 | 等待返回 | ||||||
修改数据类型 | 是 | COPY | 否 | 否 | 等待返回 | 是 | COPY | 否 | 否 | 等待返回 |
修改Varchar长度(0-255) | 是 | 等待返回 | 是 | 等待返回 | ||||||
添加默认值 | 是 | 等待返回 | 否 | INPLACE | 是 | 是 | 立即返回 | |||
删除默认值 | 是 | 等待返回 | 是 | 立即返回 | ||||||
修改not null | 是 | INPLACE | 是 | 否 | 等待返回 | 是 | INPLACE | 是 | 否 | 等待返回 |
修改列注释 | 是 | 等待返回 | 是 | 立即返回 | ||||||
添加索引 | 否 | INPLACE | 是 | 否 | 等待返回 | 否 | INPLACE | 是 | 否 | 等待返回 |
删除索引 | 是 | 等待返回 | 是 | 等待返回 | ||||||
修改索引名 | 是 | 等待返回 | 是 | 等待返回 | ||||||
重置auto-increment | 是 | 等待返回 | 是 | 等待返回 |