2014-09-23 52 views
0

我手上有大約4400萬個鍵值對,需要存儲在我的筆記本電腦中。鍵和值都是短文本,鍵都是唯一的。它們的總大小約爲幾千兆字節。在我的筆記本電腦上存儲一些比較大的鍵值對?

我試圖將它們存儲在GDBM數據庫中。問題是每當我插入一條新記錄時,GDBM都會檢查密鑰的存在,隨着數據庫的增長,它會變得越來越慢。我的存儲程序運行了2個小時,沒有很快完成的跡象,所以我放棄了。

所以現在我正在尋找的是

  • 添加記錄時,最好是獨立於數據庫的大小是相當快捷鍵 - 值數據庫系統。
  • 最好是簡單和小,這樣我就不必在我的筆記本上運行一個守護進程(最好,如果沒有守護進程)。我不需要經常訪問這個數據庫。
  • 訪問簡單快捷。至少我不應該在內存中加載整個數據庫。我想過只是將它們存儲在一個大的XML/JSON文件中,但加載它並訪問條目會很痛苦(......對嗎?)。
  • 理想情況下,將所有內容存儲在一個文件中。
  • 理想情況下有Python界面。雖然我不介意寫C/C++。

我不需要經常訪問數據庫(可能是每週或每月,那種頻率)。這只是爲了我個人的使用,所以不需要涉及主從/併發/負載平衡魔法。我可能需要不時地查看一些條目,或者有時候爲了統計而遍歷整個集合一兩次。一旦最初存儲數據,我通常不會(也許永遠不會)更改數據。

我使用OS X的2011 Macbook Pro(無SSD),如果有幫助的話。

我應該使用哪個數據庫?


更新:我一直在測試一些鍵值數據庫,包括谷歌的leveldb。

...

...

...

然後我就按照OS X 10.10(我用的是所有這些其中)的公開測試版更新到發行版本,問題就消失了... ... ...實際上,DBM的速度都很快。

+0

試用redis,http://redis.io。但是,您沒有深入地告訴我們您訪問數據的方式,如果手動或腳本或軟件或其他方式,其他解決方案可能會更好。此外,只有當你需要訪問你的數據時,你纔可以啓動你的redis deamon,沒有理由讓它始終運行(你使用的是Windows?)。 – faboolous 2014-09-23 00:58:40

+0

嘿@faboolous,感謝您的評論。我正在爲我的問題添加更多信息。我知道Redis。我只是覺得這對於一個簡單的問題有點矯枉過正。但也許最後我不得不使用它。它是否支持將數據存儲在單個文件中? – MetroWind 2014-09-23 01:04:16

+0

redis擅長作爲一個關鍵值存儲 - 這實際上就是您要找的東西......但的確,它可能會滿足您的需求。似乎只有append-only-file選項,但我不確定這是你需要的什麼 – faboolous 2014-09-23 01:18:18

回答

相關問題