gpt4 book ai didi

java - Couchbase 在 Java 中批量检索多个键

转载 作者:行者123 更新时间:2023-11-30 08:57:04 25 4
gpt4 key购买 nike

在 couchbase 中,考虑一个文档有一个字段,其中包含一组引用其他文档的键

{
"some_ids": ["otherdoc1", "otherdoc2", "otherdoc3"]
}

some_ids 字段中检索所有文档的这两种解决方案中哪一种提供了最佳性能?

  1. Batching with RxJava

    List<JsonDocument> foundDocs = Observable
    .just("otherdoc1", "otherdoc2", "otherdoc3")
    .flatMap(new Func1<String, Observable<JsonDocument>>() {
    @Override
    public Observable<JsonDocument> call(String id) {
    return bucket.async().get(id);
    }
    })
    .toList()
    .toBlocking()
    .single();
  2. 创建一个设计 View ,然后使用 startKeyendKey 检索其索引的子集

    // Map function
    function(doc, meta) {
    if (doc.type == 'otherdoc') {
    emit(meta.id, doc);
    }
    }

    // ViewQuery (in a java method)
    ViewQuery.from('designOther', 'viewOther')
    .startKey('otherdoc1')
    .endKey('otherdoc2');

最佳答案

在 Couchbase 中,当您知道 key 时,SDK 就会知道向哪个节点请求该 key (通过散列)。另一方面,查询 View 意味着 View 引擎联系集群中的每个节点。

因此,在 RxJava 中直接获取 && 批处理,因为您知道 key ,将为您节省额外的往返行程,并且最终性能会更好!

关于java - Couchbase 在 Java 中批量检索多个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28306642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com