Wor*_*ker 3 postgresql snapshot
我已经运行并加载了 PostgreSQL 服务器。我需要在特定时间(午夜)拍摄特定表的快照。这些表非常加载(大量更新和插入)。
最好的方法是什么?
编辑:我必须快照的表有大约 50.000.000 条记录。他们中只有 5-20% 在一天内发生变化。
补充:实际上我有一个想法,为每个应该被创建的表添加插入/更新触发器,并将所有更改写入另一个每天分区的表。
请告诉我这是否是上帝的主意?
我会使用pg_dump
或create table foo_log as select * from foo
补充:实际上我有一个想法,为每个应该被创建的表添加插入/更新触发器,并将所有更改写入另一个每天分区的表。
请告诉我这是否是上帝的主意?
听起来也不错。这也适用于规则,例如:
create rule as on insert to yourtable_log__ins
do also
insert to yourlogs select new.*;
Run Code Online (Sandbox Code Playgroud)
然后,每天:
begin;
create table yourlogs_[date] () inherits (yourlogs);
create or replace rule yourlogs__ins as on insert to yourlogs
do instead
insert into yourlogs_[date] select new.*;
commit;
Run Code Online (Sandbox Code Playgroud)
每天动态创建表的主要区别在于您将在每次插入/更新时引入的开销,而不是一次性获取更新的行。
归档时间: |
|
查看次数: |
5364 次 |
最近记录: |