持久性是資料庫的一項功能,可確保已提交交易的記錄,即使伺服器崩潰或斷電也是如此。但是,持久性會增加相當大的資料庫管理負擔,因此如果您的站點不需要這樣的保證,則可以將 PostgreSQL 配置為運行得更快。以下是您可以進行的配置更改,以在這種情況下提高效能。除非如下所述,否則在資料庫軟體崩潰的情況下,仍然保證持久性;僅當使用這些設定時,突發的作業系統崩潰才會產生資料遺失或損毀的風險。
將資料庫叢集的資料目錄放置在記憶體支援的檔案系統中(即,RAM磁碟)。這消除了所有資料庫磁碟 I/O,但將資料儲存限制為可用的記憶體量(以及可能的交換空間)。
關閉 fsync;無需將資料刷新到磁碟。
關閉 synchronous_commit;可能不需要強制WAL在每次提交時寫入磁碟。萬一 資料庫 崩潰,此設定確實存在交易遺失的風險(但不會導致資料損毀)。
關閉 full_page_writes;無需防範部分頁面寫入。
增加 max_wal_size 和 checkpoint_timeout;這會降低檢查點的頻率,但會增加 /pg_wal
的儲存需求。
建立 未記錄的表 以避免WAL寫入,儘管這會使表不具備防崩潰安全性。
如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。