永續性是一項資料庫功能,可保證已提交的事務得到記錄,即使伺服器發生崩潰或斷電。然而,永續性會增加顯著的資料庫開銷,因此如果您的站點不需要此保證,則可以配置 PostgreSQL 以更快的速度執行。以下是在此類情況下可用於提高效能的配置更改。除非下文另有說明,否則在使用這些設定時,資料庫軟體崩潰仍然可以保證永續性;只有突然的作業系統崩潰才會帶來資料丟失或損壞的風險。
將資料庫叢集的資料目錄放在記憶體備份的檔案系統(即RAM磁碟)上。這消除了所有資料庫磁碟 I/O,但將資料儲存限制在可用記憶體(可能還有交換空間)的範圍內。
關閉 fsync;無需將資料重新整理到磁碟。
關閉 synchronous_commit;可能無需強制WAL每次提交都寫入磁碟。此設定存在事務丟失的風險(但不會資料損壞),以防 資料庫崩潰。
關閉 full_page_writes;無需防範部分頁面寫入。
增加 max_wal_size 和 checkpoint_timeout;這會降低檢查點的頻率,但會增加 /pg_wal
的儲存需求。
建立 未記錄表以避免WAL寫入,儘管這使得表不具備崩潰安全性。
如果您在文件中發現任何不正確、與您對特定功能的實際體驗不符或需要進一步澄清的內容,請使用 此表格 報告文件問題。