2012-10-17 18 views

回答

3

這些參數中的大部分(如fsync)只能在postgresql.conf中設置。通過重新啓動PostgreSQL來應用更改。它們適用於整個數據庫集羣 - 該PostgreSQL安裝中的所有數據庫。這是因爲數據庫都共享一個postmaster,write-ahead log和一組共享系統表。

在那裏列出的唯一參數可以在腳本的SQL級別設置爲synchronous_commit。通過設置synchronous_commit = 'off',你可以說「如果數據庫在接下來的幾秒內崩潰,就可以丟失這個事務,只要確保它仍然可以自動應用」。

在前面的回答中,我寫了更多關於此主題的信息Optimise PostgreSQL for fast testing

如果你想用腳本設置其他參數,你可以這樣做,但你必須通過使用腳本打開並修改postgresql.conf然後重新啓動PostgreSQL來完成。像sed這樣的文本處理工具使這種工作更容易。

0

如果您運行的是基於Debian的Linux發行版,你可以這樣做:

pg_createcluster -d /dev/shm/mypgcluster 8.4 ramcluster 

創建一個基於RAM的集羣。請注意,您所要做的:

pg_drop cluster 8.4 ramcluster 

,並重新創建它在重啓等