0

我目前在进行迁移时面临一个问题,特别是向包含数百万条记录的现有表添加新字段需要很长时间才能完成。所以我想知道有什么特别的技巧可以让它快速迁移吗?

4

1 回答 1

0

要在不锁定表的情况下执行此操作,您可以做的是创建一个包含正确列的新表,从旧表中选择数据,重命名旧表,重命名新表,删除“旧重命名表”

有些像这样;

CREATE TABLE `table_new` LIKE `table`;
ALTER TABLE `table_new` ADD COLUMN ...;
ALTER TABLE `table_new` ADD COLUMN ...;
ALTER TABLE `table_new` ADD COLUMN ...;
INSERT INTO `table_new` SELECT x, y, z, 'newcol', 'newcol2', 'newcol3' FROM `table`
RENAME TABLE `table` TO `table_old`;
RENAME TABLE `table_new` TO `table`;
-- DROP TABLE `table_old` -- Might just leave this out for now, who knows...

要考虑的另一件事可能是索引,为插入关闭它并在插入后重新启用它们,这样它们就不必一直重新计算。

于 2013-03-27T07:22:30.960 回答