2014-03-25 34 views
3

我正在評估一個應用程序的CouchBase,並試圖找出有關視圖範圍查詢的內容。我知道我可以爲單個鍵,多個鍵或範圍做一個視圖。我可以做多個範圍嗎?即我想用查看鍵0-10,50-100,5238-81902檢索項目。我可能同時需要100個不同的範圍,所以不得不向數據庫發出100個請求似乎是一個很大的開銷。CouchBase視圖獲取多個範圍

回答

2

據我所知在couchbase中沒有辦法實現從一個視圖的多個範圍獲取值。可能在Couchbase N1QL中存在(或將來會實現)一些功能,但我沒有使用它。

回答你的問題100個請求不會是一個很大的開銷。 Couchbase的安靜速度很快,它的設計能夠處理每秒很多操作。此外,如果您的視圖設計正確,則不會在每個查詢中「重新計算」。

此外還有另一種方式: 1.確定範圍的最小值和最大值 2.查詢視圖,將只返回文檔ID和一個值,該值的範圍(它會根據你的例子是0..81902)基於,沒有包括所有文檔的結果。 3.根據您的範圍(0-10,50-100,5238-81902) ,在上一步的結果的客戶端過濾器陣列上,然後使用getMulti和留在數組中的文檔ID。

我不知道你的數據結構,所以你可以嘗試兩種方式,測試它們,並選擇最適合你的需求。

+0

好的答案,如果你真的很擔心打Couchbase很多(這不是問題),你總是可以將範圍結果緩存到他們自己的密鑰/文檔中。 – scalabilitysolved

+0

我不太關心Couchbase的實際點擊率,更關心如此多請求的開銷。 (即內存,線程等)我從C#做這個,Couchbase SDK不是異步的,所以我會綁定線程。 –

+0

我不會太擔心,我們在生產中使用Java運行一個couchbase堆棧(稍有不同),並且我們已經沒有SDK的內存/線程問題,再加上我們推動它非常困難。你可以在這裏閱讀http://scalabilitysolved.com/build-a-kick-ass-couchbase-stack-for-under-1000/ – scalabilitysolved