不幸的是,你可能做的不多.插入新列时,MySQL会复制表并在那里插入新数据.您可能会发现它更快
CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table ADD COLUMN (column definition);
INSERT INTO new_table(old columns) SELECT * FROM old_table;
RENAME table old_table TO tmp, new_table TO old_table;
DROP TABLE tmp;
Run Code Online (Sandbox Code Playgroud)
这不是我的经历,但我听说其他人都取得了成功.您还可以尝试new_table在插入之前禁用索引,然后重新启用.请注意,在这种情况下,您需要注意不要丢失old_table在转换期间可能插入的任何数据.
或者,如果您的关注在更改期间影响用户,请检查pt-online-schema-change哪些方法可以巧妙地使用触发器来执行ALTER TABLE语句,同时保持表的可修改性.(请注意,这不会加快过程.)
| 归档时间: |
|
| 查看次数: |
3624 次 |
| 最近记录: |