2014-01-23 32 views
0

我生成鍵 - 值對這樣的:如何存儲和查詢數十億鍵 - 值對

KEY      VALUE 
----      ------ 
user.varname.2014-01-01 10 
user.varname.2014-01-02 10 
user.varname.2014-01-03 10 

我需要操作:

  • 查詢通過用戶名
  • 通過查詢VARNAME
  • 查詢日期

CURR本來我使用的是MySQL,並且可以正常工作以便查詢字符串。

  1. 怎麼樣查詢性能?這是存儲和查詢數十億行的好方法嗎?
  2. 也許我應該使用的NoSQL或其他數據庫?

回答

3

(非常)部分答案:

一個純粹的key-value存儲喜歡的Redis將對操作的性能很差喜歡按日期搜索,因爲將在這一特定領域沒有索引(很好不是您指定的字段,但您希望)。

因此,redis將不得不閱讀所有的鍵來搜索特定的日期,這顯然效率不高。

與您3搜索操作規範,如果你要搜索數十億條記錄,我看不出你如何能避免分裂成3個字段和索引他們。

+0

這是真的。閱讀和分割所有項目來搜索是一個可憐的主意。謝謝 – user3175226

+0

你在找什麼,你沒有在SQL?速度?可擴展性?就速度而言,你可以考慮http://stackoverflow.com/questions/10692398/how-do-i-make-a-mysql-database-run-completely-in-memory。如果您想擴展到較大的數據集,請查看諸如hbase之類的大數據數據庫 – Pixou