2011-02-07 45 views
1

我正在試驗在Windows上的虛擬硬盤上運行PostgreSQL。我這樣做的方式是簡單地將數據目錄放在ramdisk上。RamDisk上的PostgreSQL:work_mem等的大小?

沒有做任何具體的基準,性能似乎是宏偉的,只有CPU綁定。我的問題是,像work_mem,shared_buffers等的最佳值是什麼?

即使數據庫在ram中,運行我的許多查詢也需要半分多鐘。因此,我想知道它是否會在表格上創建索引。當然,這些指數需要保持在內存中。我應該提到,我正在使用PostgreSQL作爲數據倉庫(儘管如此)。

編輯:我應該提到我正在使用DataRam.com的RamDisk實用程序。它只是偶爾給我一個藍屏,當我配置ramdisk時,從來沒有建立過。我認爲這是懷舊的眼睛。 ;)

回答

1

我肯定會創建索引。引擎可以使用包含的各種優化信息,它應該會提高你的性能。 RamDisk解決了最差情況下的表掃描類型的情況,但這並不一定意味着該表可能比執行正確的查找更快。

1

是的,使用索引但work_mem仍然取決於機器本身的大小。當然,你想要一個高work_mem的原因之一就是你不用打磁盤來做磁帶排序。在一個ramdisk上,這並不是那麼危險。請記住,您在RAM磁盤上沒有數據完整性。

+0

所以,我可以解釋你的答案,因爲我可以將work_mem設置爲0,因爲點擊ramdisk並不重要。通過數據完整性,您的意思是我可以在重新啓動時丟失所有數據,或者在某些情況下虛擬磁盤上的數據可能實際上是錯誤的,最後的解釋會成爲我的擔憂。 – David 2011-02-08 08:51:36