我正在使用Couchbase和Spring Data,并希望实现Couchbase的bulkGet
。请让我知道以下内容:
findAll
(使用_all
视图)在性能方面与bulkGet
相当吗? _id
吗?环境: - Couchbase 4.0,Spring Data 2.0.0.RELEASE,Java 8.
提前致谢!
答案 0 :(得分:1)
我假设您在存储库的上下文中询问批量获取。
首先,目前还没有完全支持" bulkGet"在Spring Data Couchbase中。大多数实现都基于SDK同步API,而批量获取通常使用异步 API,使用RxJava
完成。
请注意,没有实际的" bulkGet"在Couchbase的协议级别操作,它只是发布多个单Get
的SDK并将它们一起批处理。
要回答第二个问题,上述内容非常重要。 Couchbase Java SDK文档(此处)中讨论的批量获取模式略微提升了性能,因为与同步模式不同,我们不会等待检索一个项目以获得下一个项目。
Spring Data Couchbase中的findAll()
和findAll(Iterable)
方法都在view
之上运行,它只允许检索与您的存储库的实体类型匹配的文档但引入了一个级别与纯键/值序列相比可以降低性能的间接性。
因此,与Spring Data Couchbase中的批量操作最接近的是知道您感兴趣的所有ID ,然后执行{{1每个ID 。
在短期内,可以通过在所有提供的ID上应用批量获取模式来改进findOne
签名背后的代码,但这意味着忘记视图引起的类型检查,所以我&# 39;我不确定......