存储归档数据

来自 PostgreSQL 维基
跳转到导航跳转到搜索

归档数据是指永远不会更新或删除的数据,存储在永远不会有更多插入操作的表中。它最常出现在历史表中,这些表通常是分区的,其中一个表包含过去某个时间生成的某些数据子集。以下列表是将这些数据以最有效的方式存储的清单。

验证表是否具有 100% 的 fillfactor

由于数据将永远不再被修改,因此我们应该使用尽可能少的页面。注意,这是从 postgresql 8.3 开始的默认设置,但应在更改情况下进行验证。

修改存储参数

这假设您的表包含需要处理的 varlen 列。有人对使用哪种存储设置有强烈的推荐吗?ISTM 它非常依赖于数据,但可能列出用例会比较好

重写表

为此有两种方法,具体取决于您是否要对表中的数据进行聚簇。

vacuum full 方法

删除索引
vacuum full 表
使用 fillfactor 100% 创建索引

聚簇方法

验证索引是否具有 100% 的 fillfactor
根据索引对表进行聚簇

vacuum freeze

vacuum freeze 有助于避免将来进行任何 vacuum 操作,从而减少多个级别的开销。有人知道它是否还会从 fsm 中删除任何最近更改的页面吗?

将表/索引移动到归档表空间

如果您为归档数据设置了特殊的存储,那么您可以将表和索引移动到该存储。同样,这非常依赖于实现,但有人有关于他们想分享的归档存储系统的想法吗?