我有一個非常具體的數據格式和查詢需求,我需要知道NoSQL DBs是否適合這種需求。我是而不是問「哪個DB最好」。我對功能感興趣。沉重的數學查詢和NoSQL數據庫
我需要以EAV風格存儲數據。具有稀疏索引的文檔商店是完美的。這樣我可以創建一個索引來對其每個參數的值。查詢時,只會觸及所需的索引。例如,MongoDB對此非常完美。 這是需要#1。
該查詢分兩個階段。第一個是「WHERE」的一個簡單等價物,涉及一系列針對實數的操作< =>。結果可能在成千上萬的記錄中,但通常會有成千上萬的記錄。 這是需要#2。
第二階段涉及重數學,我必須執行階段1的結果,以便排名他們。這個數學涉及大量使用權力和簡單的操作。然後結果按排名排序,並將「前100名」返回給客戶。 這是需要#3。
MongoDB是我比較熟悉的唯一的NoSQL數據庫,所以我將用它作爲參考。我不相信它可以在查詢中執行數學運算,即使可能,它也可能會很慢。我相信數學需要在客戶端進行(使用C或CUDA)。這意味着數據需要從DB快速傳輸到客戶端。我知道MongoDB有一個本地二進制連接,但是,例如,Couchbase使用REST,我相信這會使數據在大型數據集的數據傳輸上變慢。
我沒有在MongoDB上解決的原因是我需要分佈式服務器,例如Couchbase似乎更適合。
因此,我需要一個解決方案,即既可以在內部執行快速數學計算,從而限制要傳輸的記錄數,也可以非常迅速地傳輸記錄,以便可以在客戶端上處理這些記錄。我明白要知道唯一的方法是測試,但我不知道的是,這個問題是哪些NoSQL DB具有上述功能。
查詢是臨時的。 – IamIC 2012-03-13 09:46:29
Couchbase講述了memcached二進制協議,對於鍵/值的讀取和寫入,典型的等待時間小於1ms。對於您的查詢,您*可能*能夠將Couchbase map reduce用於數學運算,但我必須更多地瞭解您的用例。 – 2012-08-07 20:34:45