Postgresql
PostgreSQL 11 Windows 10 在關機時截斷所有表
我有一台新的 Windows 10 筆記型電腦,配備增強型處理器、16GB RAM 和 2TB SSD 儲存。我在這台筆記型電腦上安裝了 PostgreSQL 11.2,並使用它來編譯來自各種來源的大型數據集,並對這些數據執行各種分析和報告。
多年來,我一直在我的舊 Windows 7 筆記型電腦上執行 PostgreSQL 9.x,沒有出現任何實際問題。但是在我的新筆記型電腦上,似乎每次我關閉筆記型電腦並返回數據庫時,每一張表都被截斷了。所有的桌子都還在那裡,但只是空蕩蕩的。
是否有需要在某處更改的配置設置?
解決方案
從所有表創建命令中刪除 UNLOGGED 選項
結果
在系統關閉或重新啟動期間數據不再消失
我已經使用
CREATE UNLOGGED
了很長時間,因為我發現在早期版本的 PostgreSQL 中,它對我的 SQL 腳本的執行時間產生了巨大的影響。在一種情況下,它從 15 分鐘下降到 45 秒左右。每隔一段時間,比如一年一兩次,我都會發現桌子已經空了。我會繼續重新載入數據集,從不真正考慮更多。但是當我將數據集遷移到 PostgreSQL 11.x 時,我發現每次關閉筆記型電腦時表都會清空。感謝上面的評論,我了解到該
UNLOGGED
選項確實是這裡的罪魁禍首。我從所有表創建命令中刪除了該選項,並且數據在重新啟動期間不再消失。額外的好處
在 PostgreSQL 11.x 中執行此操作時,我沒有發現性能有任何明顯下降!