2013-11-09 39 views
0

我目前使用的數據庫具有以下使用限制:哪一種查找速度更快,Berkeley DB或索引PostgreSQL?

  • 快速,單列查找(鍵 - 值對的罰款)
  • 百萬行(可能< 10M雖然)
  • 優化無需連接關係等
  • 潛在的多用戶,多線程訪問

它最初使用PostgreSQL開發BEC因爲我們熟悉這種類型的數據庫。現在速度太慢,無法用於查找和更新(這是一個緩存,所以速度就是一切)。我們目前正在測試不同的方式來爲PostgreSQL表建立索引以加快查找速度,但我想從有經驗的人那裏知道,伯克利數據庫是否會比最佳鍵控的PostgreSQl數據庫更快?

+0

如果你正在做很多更新,查找並不是你唯一的問題,你可以使用它作爲緩存系統。如果頁面中沒有足夠的填充以有效處理各種大小的數據,則這些更新可能會經常與表格佈局混淆。 (多少?我不能說。)另外,理想情況下,對於查找,您希望您的公共數據請求儘可能少地通過儘可能少的頁面提取進行處理。如果您的數據檢索沒有嘗試完成,那麼在您更好地管理數據檢索策略之前切換數據庫是毫無意義的。 – JayC

+0

你有沒有適當調整你的Postgresql數據庫? autovacuum充滿侵略性嗎?你使用的是什麼版本的Postgresql?什麼是慢,更新或選擇?表和索引膨脹是否是其中的一部分?索引怎麼樣,也許你有不適當的索引?在嘗試切換到另一個數據庫之前,還有很多問題可以嘗試加速您的現有數據庫。如果您決定要離開Postgres,您是否考慮過像Redis或Memcached這樣的數據庫? – bma

+1

你似乎沒有看到你的解釋分析結果,PostgreSQL版本,設置和其他關鍵細節。請參閱http://stackoverflow.com/tags/postgresql/info。此外,您是否通過模擬*您的*工作負載來比較自己並進行比較?不同的數據庫引擎對於不同的事情會更快。 –

回答

1

難道你不是索引它,它可能是? (10M行很小...... Postgres不能和沒有處理TB級的數據。)

也就是說,如果它只是一個緩存,你有沒有考慮創建RAM驅動器,併爲它的表空間?

http://www.postgresql.org/docs/current/static/manage-ag-tablespaces.html

可以使表內它未記錄以及爲了加快速度進一步(它不是像這樣重要的多,如果它真的只是一個緩存):你會用類似memcached的事情結束了,帶有postgresql語法和數據類型的好處。