我有两个包含以下列的表:
table_1: id, date, val1, val2
table_2: id, date, val3, val4
我现在想要
table_3: id, date, val1, val2, val3, val4
两个表都有(id,date)的唯一索引。
目前我只是创建一个新表。
create table table_3 as
select * from table_1 join table_2 using (id, date);
create unique index my_index
on table3(id,date);
由于数据非常大,这需要一段时间。我现在正在寻找让这更快的想法。
问题是:您认为通过添加缺少的列来更改表1然后插入它们会更快,因为索引不应该重新创建吗?还有其他方法可以加快速度吗?
答案 0 :(得分:1)
最快的方式几乎肯定是你在做什么。尝试更改表将最终更新表和索引中的每一行。最后重建索引的速度更快。
另一种选择当然是使table_3成为一个视图。