通常、couchbase ではビューの結果セットがバックグラウンドで構築されます。たとえば、100 万個のドキュメントがそれぞれ 4Kb のサイズでビューがないとすると、ディスク上で最大 4Gb かかります。次のようなマップ関数でビューを作成すると
function(doc, meta) {
emit(doc.name, doc);
}
その結果、ビューの結果は個別に保存されるため、ビューの結果用にディスク上で追加の 4Gb が必要になります。ほとんどの場合 ( param で view をクエリする場合Stale=Ok
)、couchbase はその「プリコンパイル済み」レコード セットから結果を返しますが、couchbase は各クエリですべてのドキュメントをスキャンするわけではありません。
そのため、マップ関数で null を発行すると、ディスク領域の使用が防止され、インデックス作成プロセスの速度も向上します。
「GetView("beers", "beer") からの結果が完全に値を取得している」場合のソファベースの魔法に関する 2 番目の質問です。Couchbaseget(key)
とgetMulti(keys)
操作は非常に高速です。したがって、発行するビューにクエリを実行すると、null
だけnulls
でなく、ドキュメント ID も返されます。次に、そのドキュメント ID の配列を手動で使用getMulti
してドキュメントの値を取得するか、一部の SDKIncludeDocs
では、同じことを自動的に行うクエリ パラメータが呼び出されます。