N1QL错误索引扫描超时 - 原因:索引扫描超时

时间:2016-08-05 04:52:18

标签: indexing couchbase

我在couchbase 4.1.0上面临一个问题,它通过CBQ对大约2000万个文档运行查询。执行查询时,在超时2分钟后打印此错误:

  

"代码":12015,

     

" msg":"索引扫描超时 - 原因:索引扫描超时"。

我的问题是这个

  1. 什么是索引扫描(这是扫描查找要使用的适当索引还是什么?
  2. 导致此类错误的原因
  3. 查询超出couchbase功能的这个大小的数据集?

1 个答案:

答案 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>。)