我有一个像这样的 Java Couchbase n1ql 查询:N1qlQueryResult result = bucket.query(N1qlQuery.simple(sql), queryTimeout, TimeUnit.MILLISECONDS);不幸的是,在某些情况下,这个查询会返回很多行,然后需要迭代。这需要很长时间,因为看起来文档正在被懒惰地获取。我想实现急切地获取文档,我收集这意味着设置includeDocs为 true。如何将查询设置为急切地获取或将获取批量大小设置为一个较高的数字?
1 回答
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
为了平分性能,您可以尝试更改 sql 以仅选择 meta().id。另外,检查控制台中查询的解释,看看它是否使用主索引以外的索引。
在这种情况下,没有批量大小或预先获取。所有这些细节都由查询引擎处理。SDK 发送请求,查询引擎流式传输结果。SDK 中有一个流解析器来处理传入的行,但这通常不是支配者。
您可以做的另一件事是检查返回的指标。比较在客户端观察到的时间和查询引擎使用的记录会很好。请参阅N1qlMetrics或profileInfo()(可能需要在查询中启用)。
添加回答
举报
0/150
提交
取消