我有表Recommendations
,其中包含每个用户100条建议,并且有50k +用户,因此表包含~5000000行。每行包含2列:UserId
(FK),ContentId
(fk)。建议来自Oryx,它位于不同的服务器上。我需要的是每24小时更新一次建议,尽可能减少对(数据库)性能的影响。这样做的最佳方式是什么?创建临时表,用数据填充然后交换表?或其他什么?
(更新建议意味着用全新的5000000行替换5000000行)
答案 0 :(得分:0)
不需要临时表。只需在交易中进行
create table t (
id integer primary key
);
insert into t
select generate_series(1, 10);
begin;
delete from t;
insert into t
select generate_series(11, 20);
commit;