如何將我的整個PostgreSql數據庫加載到RAM中以獲得更快的訪問?我有8GB內存,我想爲數據庫專用2GB。我已閱讀有關共享緩衝區設置,但它只是緩存數據庫中訪問最多的片段。我需要一個解決方案,將整個DB放入RAM中,任何讀取都將從RAM DB發生,並且任何寫入操作都會首先寫入RAM DB,然後寫入硬盤驅動器的DB(有些事情就像默認的fsync =在postgresql配置設置中使用共享緩衝區)。需要將整個postgreSQL數據庫加載到內存中
回答
我已經問過自己同樣的問題一段時間了。 PostgreSQL的一個缺點是,它似乎不支持像MySQL那樣的IN MEMORY存儲引擎...
無論如何,我在幾周前跑到article描述如何做到這一點;儘管它似乎只適用於Linux。我真的不能保證它,因爲我沒有自己嘗試過,但它似乎有意義,因爲PostgreSQL表空間確實分配了一個掛載的存儲庫。
但是,即使採用這種方法,我也不確定是否可以將索引放入RAM中;我不認爲MySQL迫使HASH索引與其IN MEMORY表無關...
我也想做類似的事情來提高性能,因爲我也在處理大量數據集。我正在使用python;他們有字典數據類型,基本上是{key:value}對的哈希表。使用這些是非常有效的。基本上,爲了讓我的PostgreSQL表進入RAM,我把它加載到這樣一個Python字典中,使用它,並且在一段時間內將它保存到數據庫中;如果使用得當,它的價值就在於它。
如果你不使用python,我很肯定他們是你的語言中的一個類似的字典映射數據結構。
希望這會有所幫助!
該文章不再在該鏈接上可用。 Archive.org有它:https://web.archive.org/web/20080517112936/http://www.redhatmagazine.com/2007/12/12/tip-from-an-rhce-memory-storage-on- postgresql/ – Otheus 2017-03-02 11:44:19
如果您使用的是Java,可能類似於Tangosol Coherence cache。
只有8GB的數據庫,如果你已經優化了所有的SQL活動,並且你已經準備好用硬件解決查詢問題,那麼我建議你有麻煩了。從長遠來看,這不僅僅是一個可擴展的解決方案。你確定在軟件和數據庫設計方面沒有什麼可以做出重大差異的嗎?
如果您是通過id提取數據,請使用memcached - http://www.danga.com/memcached/ + postgresql。
- 1. 將整個數據庫加載到內存中或不是
- 2. 將PostgreSQL數據庫加載到SchemaRDD
- 3. 將數據庫表加載到要使用的內存
- 4. 將CSV文件中的數據加載到PostgreSQL數據庫中
- 5. Entlib將數據加載到內存中
- 6. 將HEX數據加載到內存中
- 7. 將通用java類型保存/加載到postgresql數據庫列
- 8. EntityFramework - 是否有可能將整個上下文數據庫加載到內存?
- 9. 將CSV數據加載到PostgreSQL表中
- 10. 將數據從數據庫表加載到共享內存
- 11. PostgreSQL在內存數據庫
- 12. 將SQL Server CE數據庫加載到內存中
- 13. 將靜態Django數據庫加載到內存中
- 14. 將所有Neo4J數據庫加載到內存中
- 15. 將只讀數據庫表加載到內存中
- 16. 將MySQL innodb數據庫加載到內存中
- 17. 將數據庫加載到Dbeaver中的Postgresql中
- 18. 如何確保整個MySQL數據庫都加載到內存中?
- 19. 在內存中固定一個數據庫/將數據庫附加到內存數據庫中
- 20. 將舊版sqlite3數據庫加載到Heroku上的postgresql中
- 21. 內存優化表 - 部分將數據加載到內存中
- 22. Python中的圖像處理 - 無需將整個圖像加載到內存中
- 23. 內存數據庫中的Postgresql django
- 24. 是否可以將數據分段到不同的Redis存儲中,並在需要時加載到內存中?
- 25. Java圖像縮放,無需將整個圖像加載到內存中
- 26. 無法加載數據庫PostgreSQL中
- 27. 將PostgreSQL數據庫複製到另一個數據庫中
- 28. Will BufferedReader會將整個文件加載到內存中嗎?
- 29. 是否將整個Inode表加載到主內存中
- 30. cPickle或pickle是否將整個結構加載到內存中?
順便說一句,它是爲我使用Python和Django框架的網站。 – Bharath 2009-01-02 15:34:16