Postgresql

僅附加的 postgres 允許哪些性能優勢?

  • July 19, 2018

假設我們有一個只有一個表的 Postgres 數據庫。眾所周知,不會在其上執行任何 UPDATE 語句,也不會執行任何 DELETE。它是 100% 僅附加的。

有些數據庫依賴於這種行為並因此設法獲得特定的性能提升,例如 Datomic。但是,這不是 Postgres 預期執行的典型方式,所以我想從性能方面受益,我需要專門配置它。

我可以利用我的無更新/刪除保證的主要方式是什麼?

我相信我可以完全禁用真空,但我不能 100% 確定這一點,而且我不認為這是一個巨大的勝利。可以在此處進行的最大配置更改是什麼?

如果重要的話,寫入會在一天中的特定時間發生,而不會在其他時間發生。但是,我認為細節正在進入“過於本地化”的領域,所以如果它沒有幫助,我會從這個問題中編輯它。(如果有幫助,我將在此處編輯免責聲明部分!)

如果您希望從僅索引掃描 (IOS) 中受益,您仍然需要清理您的表,即使它們是僅附加的。事實上,autovacuum 從未根據 IOS 的需要進行調整,因此您可能需要為 IOS 安排自己的清理,以最大限度地提高僅附加表的效率。當然不要禁用autovac,它自然不會在沒有什麼可以做的時候做任何事情,所以禁用它不會帶來任何好處。

除此之外,我認為你無能為力。這種情況將極大地受益於 9.6 中引入的凍結地圖,但您無需執行任何操作來啟動它,只需使用至少那麼高的版本。

引用自:https://dba.stackexchange.com/questions/212563