仅附加 postgres 允许哪些性能优势?

Bla*_*ble 6 postgresql performance performance-tuning

假设我们有一个只有一个表的 Postgres 数据库。众所周知,不会在其上运行 UPDATE 语句,也不会运行任何 DELETE。它是 100% 仅附加的。

有些数据库依赖于这种行为并因此设法获得特定的性能提升,例如 Datomic。但是,这不是 Postgres 预期运行的典型方式,所以我想从性能方面受益,我需要专门配置它。

我可以利用我的无更新/删除保证的主要方式是什么?

我相信我可以完全禁用真空,但我不能 100% 确定这一点,而且我认为无论如何这都不是一个巨大的胜利。在这里可以进行的最大配置更改是什么?

如果重要的话,写入每天在特定时间发生一次,而不会在其他时间发生。但是,我认为该细节正在进入“过于本地化”的领域,因此如果没有帮助,我会将其从这个问题中删除。(如果有帮助,我会在这里编辑免责声明部分!)

jja*_*nes 2

如果您希望从仅索引扫描 (IOS) 中受益,您仍然需要清理表,即使它们是仅追加的。事实上,autovacuum 从未根据 IOS 的需要进行调整,因此您可能需要为 IOS 安排自己的清理工作,以便在仅追加表上发挥最大作用。当然不要禁用autovac,当它无事可做时它自然不会做任何事情,因此禁用它不会有任何好处。

除此之外,我认为你没有什么可以做的。这种情况将大大受益于 9.6 中引入的冻结地图,但除了使用至少那么高的版本之外,您无需执行任何操作即可激活它。