我在couchbase 4.1.0上面临一个问题,它通过CBQ对大约2000万个文档运行查询。执行查询时,在超时2分钟后打印此错误:
"代码":12015,
" msg":"索引扫描超时 - 原因:索引扫描超时"。
我的问题是这个
答案 0 :(得分:1)
索引扫描是在索引中查找查询谓词的过程。例如。如果你有一个名为" a"并且该字段的索引称为" ix_a",查询" SELECT * FROM bucket其中A = 123"将对索引ix_a执行索引扫描以查找值123.正如Gerald在评论中指出的那样,默认索引 扫描超时为2分钟。这可以在设置中进行调整。
此错误可能是由索引节点尺寸过小引起的,例如RAM不足以使索引主要从磁盘读取,尤其是在索引字段非常大的情况下。或者服务器忙。在4.1.0中,COUNT(*)查询还执行索引扫描,因此它将有效地遍历整个主索引并计算所有项目。
查询20m项目完全在Couchbase Server的功能范围内,但您必须考虑正确设计索引以确保查询运行良好。
这是一个非常通用的答案。如果您可以发布查询和查询执行计划,这将有所帮助。 (要获取执行计划,请在N1QL中运行以下命令:EXPLAIN <your query>
。)