MySQL
MySQL
ALTER TABLE orders
ADD COLUMN memo VARCHAR(255) NULL,
ALGORITHM=INPLACE, LOCK=NONE; -- 指定算法失败会直接报错,适合上线前验证PostgreSQL
PostgreSQL
ALTER TABLE orders ADD COLUMN memo text; -- 加可空列:元数据操作
ALTER TABLE orders ADD COLUMN cnt int NOT NULL DEFAULT 0; -- PG 11+ 常量默认值也是元数据操作
ALTER TABLE orders ALTER COLUMN amount TYPE numeric(14,2); -- 通常重写整表| MySQL | ALGORITHM=INSTANT/INPLACE/COPY;LOCK=NONE 避免阻塞读写(不支持则报错) |
|---|---|
| PostgreSQL | 加列/改默认多为元数据操作;改类型/加约束常需要全表扫描或重写 |
| 窗口 | 大表变更先做影子表/在线工具评估,再选低峰执行 |