4

私はアプリケーションの CouchBase を評価しており、ビューの範囲クエリについて何かを理解しようとしています。単一のキー、複数のキー、または範囲に対してビューを取得できることはわかっています。複数の範囲を取得できますか? つまり、ビュー キーが 0 ~ 10、50 ~ 100、5238 ~ 81902 のアイテムを取得したいと考えています。100 の異なる範囲が同時に必要になる可能性があるため、データベースに対して 100 の要求を行わなければならないのは、多くのオーバーヘッドのように思えます。

4

1 に答える 1

3

私がcouchbaseで知っている限り、1つのビューで複数の範囲から値を取得する方法はありません。Couchbase N1QL にはいくつかの機能がある (または将来実装される) 可能性がありますが、私はそれを使用しませんでした。

あなたの質問に 100 件のリクエストに答えても、大きなオーバーヘッドにはなりません。Couchbase は静かで高速で、1 秒間に多くの操作を処理できるように設計されています。また、ビューが正しく設計されている場合、クエリごとに「再計算」されることはありません。

また、別の方法があります:1.範囲の最小値と最大値を決定します(例によれば0..81902になります)2.ドキュメントIDと範囲が基づいている値のみを返すクエリビューを含めずに結果としてすべてのドキュメント。3. クライアント側で、範囲 (0 ~ 10、50 ~ 100、5238 ~ 81902) に従って前の手順の結果の配列をフィルター処理し、配列に残ったドキュメント ID で getMulti を使用します。

私はあなたのデータ構造を知らないので、両方の方法を試してテストし、要求に合った最適な方法を選択してください。

于 2014-03-25T14:46:26.237 に答える