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

2024-04-18

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

“代码”:12015,

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

我的问题是这样的

  1. 什么是索引扫描(这是寻找要使用的适当索引的扫描还是其他什么?
  2. 是什么原因导致这样的错误
  3. 查询这种大小的数据集是否超出了 couchbase 的能力?

索引扫描是在索引中查找查询谓词的过程。例如。如果您有一个名为“a”的字段,并且该字段上有一个名为“ix_a”的索引,则查询“SELECT * FROM bucket where A = 123”将对索引 ix_a 执行索引扫描以查找值 123。 正如 Gerald在评论中指出,默认索引 扫描超时为 2 分钟。这可以在设置中调整。

此错误可能是由于索引节点尺寸过小造成的,例如没有足够的 RAM,因此索引主要从磁盘读取,特别是当索引字段非常大时。或者服务器繁忙。在 4.1.0 中,COUNT(*) 查询还执行索引扫描,因此它将有效地遍历整个主索引并对所有项目进行计数。

查询 2000 万个项目完全在 Couchbase Server 的能力范围内,但是您必须花一些心思来正确设计索引,以确保查询能够良好执行。

这是一个非常通用的答案。如果您可以发布查询和查询执行计划,将会有所帮助。 (要获取执行计划,请在 N1QL 中运行以下命令:EXPLAIN <your query>.)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

N1QL 错误索引扫描超时 - 原因:索引扫描超时 的相关文章

  • mysql复合索引是否会使其他一些索引完全冗余?

    如果我在 a b 上有一个复合索引 我知道仅与 a 相关的查询仍将使用复合索引 但与 b 相关的查询不会 我的问题是 如果我有 a b 索引 是否有任何正当理由在 a 上建立单列索引 我读到的内容对于 a b 索引是否完全替代 a 或者仅仅
  • 使用mongoose在mongodb模式中使用ensureIndex

    我想打电话ensureIndex on the authorName 命令是什么以及我应该将其放在这段代码中的什么位置 var mongoose require mongoose defines the database schema fo
  • solr索引嵌套文档

    solr支持嵌套文档吗 有没有更好的方法来实现这种文档
  • 我应该在 mongodb 中对布尔标志使用稀疏索引吗?

    我有一个布尔标志 finished 我是不是该 A index finished 1 B index finished 1 sparse true C use flag unfinished instead to query by that
  • mysql 部分索引、反向索引

    我有一张包含单词列表的表格 字 VARCHAR 16 我需要创建一个反向索引 IE 单词 apple 将索引为 elppa 单词 banana 将索引为 ananab 依此类推 另外 是否可以索引单词的一部分 例如 跳过第一个 最后一个或
  • 如何在 Postgres 中的 JSON 字段上创建索引?

    在 PostgreSQL 9 3 Beta 2 中 如何在 JSON 字段上创建索引 我尝试使用 gt 运算符用于hstore但出现以下错误 CREATE TABLE publishers id INT info JSON CREATE I
  • Mysql使用tenant_id进行复合索引

    我们有一个多租户应用程序 该应用程序有一个包含 129 个字段的表 这些字段都可以在 WHERE 和 ORDER BY 子句中使用 我花了 5 天的时间试图找出最适合我们的索引策略 我获得了很多知识 但我仍然有一些问题 1 创建索引时 我应
  • 返回深度嵌套数组中对象的索引的函数

    我可能需要编写一个函数 仅输出数组内对象的索引 显然 使用 inArray 在下面的示例中返回这个索引就可以了 array one two three inArray one array 0 对于更复杂的数组 如何找到嵌套对象的索引 arr
  • 在 MySQL 中向 BIGINT 列添加索引有帮助吗?

    我有一个包含数百万个条目的表 以及一个包含BIGINT 20 每行的唯一值 它们不是主键 但在某些操作过程中 有数千个SELECTs 在中使用此列WHERE条款 问 向该列添加索引是否有帮助当条目数量增长到数百万时 我知道它适用于文本值 但
  • 检索 Couchbase 的所有记录(文档)

    我正在使用 node js 并寻找一种方法来获取特定的 couchbase 桶的所有文档 有没有没有循环和增量索引的解决方案 我知道我可以制作一个原子键 然后通过循环使用它来检索所有数据 但我需要一个返回所有文档的函数 是否有任何函数 至少
  • MySQL 5.0 索引 - 唯一索引与非唯一索引

    MySQL 唯一索引和非唯一索引在性能方面有什么区别 假设我想在 2 列的组合上创建索引 并且该组合是唯一的 但我创建了一个非唯一索引 这会对 MySQL 使用的性能或内存产生重大影响吗 同样的问题 有区别吗primary钥匙和unique
  • 包括 Oracle 中的等效项

    在 SQL Server 中你可以这样写 create index indx on T1 A B INCLUDE C D E 有没有办法在 Oracle 中做同样的事情 Refs http msdn microsoft com en us
  • 创建前判断MySQL表索引是否存在

    我们系统的自动数据库迁移过程涉及运行包含新表定义及其附带索引的 sql 脚本 仅当这些表和索引尚不存在时 我才需要能够创建它们 表是通过使用 IF NOT EXISTS 来处理的 但创建索引时不存在这样的语法 我尝试编写一个存储过程 如下所
  • 根据标准在多个需求之间分配数量

    我正在创建一个周期盘点表 表 1 将是用户输入 其中将放置找到的材料和数量 表 2 是盘点时的库存快照 我希望将找到的材料数量分配到表 2 上的数量中 直到表 1 的数量用完为止 按照从最新批次 日期代码 到最旧批次 先进先出 的顺序分配数
  • ERROR 188 (HY000): FTS 查询超出结果缓存限制 mysql

    我的表的文本列上有全文索引 约有 1100 万行 表结构 CREATE TABLE review id int 11 NOT NULL AUTO INCREMENT comments text COLLATE utf8mb4 unicode
  • MongoDB - 解释特定的解释输出

    我使用的是 MongoDB 版本 2 4 8 test 2014 03 25 14 42 13 0 gt gt gt db users getIndexes v 1 key id 1 ns test users name id v 1 ke
  • 非集群主键实体框架代码优先

    在实体框架代码优先方法中 我们是否可以将主键定义为非聚集索引 并将其他几个字段的组合定义为聚集索引 Thanks EF 6 2 解决了这个问题 目前 它处于测试状态 但它可以工作 首先 将 EF 升级到 6 2 Install Packag
  • Lucene,索引已经/外部标记化的标记并定义自己的分析过程

    在使用Lucene的过程中 我有点失望 我不明白或不明白我应该如何继续为任何 Lucene 分析器提供已经可直接索引的东西 或者我应该如何继续创建我自己的分析器 例如 如果我有一个List
  • Solr 索引时间提升 VS 查询时间提升?

    问题 1 我们可以只进行查询时间提升 使用 dismax 而不在索引时间提及提升值吗 问题 2 与查询时间提升相比 索引时间提升有何优点 缺点 反之亦然 查询时间和索引时间提升 在索引时 您可以选择提升特定文档 整个文档或仅一个字段 它作为
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break

随机推荐

  • MAMP MySQL 无法连接:设置无效。

    我在 MAMP 灌输中遇到了问题 我没有改变它刚刚发生的任何事情 我完美地启动了 MAMP 它为 MySQL 服务器启动提供了绿灯 我可以使用 mysql 命令从终端连接到它 但是 当我尝试打开 phpMyAdmin 时 出现此错误 错误
  • 如何消除“最后一个语句应该返回一个值”警告?

    Sun Studio 12 1 打印警告 Warning The last statement should return a value 经常用于这样的功能 int f some code that may return if we en
  • HttpPost 适用于 Java 项目,但不适用于 Android 项目

    我为我的 Android 设备编写了一些代码 用于通过 HTTPS 登录网站并从结果页面中解析一些数据 一个HttpGet首先获取登录所需的一些信息 然后HttpPost执行实际的登录过程 下面的代码在 Eclipse 中的 Java 项目
  • 禁用 LINQ to SQL 中的触发器

    我们创建了一个带有触发器的表 每次有 UPDATE INSERT 时都会更新其中的 ModifiedDate 字段 不过 对于我们应用程序中的特定交易 我们希望暂时禁用此触发器 可以直接从 LINQ 执行此操作吗 直接 不调用存储过程 不使
  • 仅获取 git 远程存储库的标签/引用

    是否可以在不下载对象 文件的情况下获取存储库 例如 GitHub 的标签 引用 我的用例是打包某些软件的最新测试版 这些软件具有悠久的历史 因此很难克隆 理想情况下 在确定我希望使用的标签后 我可以 git clone b tag dept
  • 在 Python 中使用 Rasterbar libtorrent 加载 Magnet LINK

    如何通过 rasterbar libtorrent python 绑定加载 Magnet 链接 import libtorrent as lt import time ses lt session params save path home
  • PHP 中的位掩码设置?

    位和位掩码是我一段时间以来一直难以理解的东西 但我想学习如何在 PHP 中使用它们进行设置和类似的操作 我终于找到了一个声称可以做到这一点的课程 据我所知 它似乎有效 但我不确定这是否是最好的方法 我将在下面发布带有示例代码的类文件 以显示
  • Apache Camel/ActiveMQ 优先级路由

    我有两个具有相同消费者的 AMQ 队列 第一个队列 Q1 处理 97 的消息 另一个队列 Q2 仅处理 3 问题是 Q2 中的消息需要在排队后立即处理 所以我的问题是 当第二季度有消息可用时 我需要以某种方式暂停第一条路线以吸引其消费者 a
  • 在 Windows 资源管理器中打开一个文件夹并选择一个文件,仅第二次有效

    使用中描述的代码这个答案 https stackoverflow com a 696144 107625SO 发布的 打开文件夹并选择文件 https stackoverflow com questions 334630 open fold
  • 在perl脚本中调用带有输入参数和输出光标的存储过程

    尝试在 perl 脚本中执行过程 Proceure gt 创建或替换 PROCEDURE Getproc v catg IN CHAR DEFAULT NULL v cursor OUT SYS REFCURSOR 执行程序 my sth
  • 为什么大多数 RNG 中上限都是独有的?

    大多数编程语言都提供 伪 随机数生成器 其中许多都有方便的方法来生成特定范围内的整数 到目前为止 在我见过的所有实现中 范围的下限是包含的 而上限是排除的 这有具体的技术或历史原因吗 我可以想象 在使用索引或长度时它很方便 但我找不到任何有
  • 如何查明当前安装的 webdeploy/msdeploy 版本是什么?

    我正在寻找类似 Powershell 脚本的东西来检查 msdeploy 是否已安装 如果是 是什么版本 我考虑过检查 c Program Files IIS 并检查那里的 MSDeploy 安装 但这总是保证是安装位置吗 我需要它在任何给
  • GAE:模型失去了父子关系的踪迹

    我在谷歌应用程序引擎数据存储中的实体关系中遇到了一个非常奇怪的问题 我正在开发一个 Python GAE Web 应用程序 学习练习 完整的代码可以在来源锻造 http rhs galleries svn sourceforge net v
  • 如何以最小的内存占用直接将大内容流式传输为 PDF?

    我正在尝试以最小的内存占用 例如每个客户端 线程 20 MB 将格式化数据的大内容 例如 200 MB 流式传输为 PDF PDF结构是用Adobe postscript编写的 直接用PDF postscript格式编写比较复杂 我一直在使
  • Dynamics CRM 2011 Outlook 客户端和浏览器呈现

    因此 通过 Dynamics CRM 2011 您可以使用浏览器客户端或 Outlook 客户端 http blogs c5insight com Home tabid 40 entryid 218 CRM and Outlook 6 Re
  • 如何进行从旧 Servlet 到 JSF 2.0 的服务器端重定向?

    我目前正在执行客户端重定向 以从遗留 servlet 应用程序的旧部分 到 JSF 页面 应用程序的新部分 如果可能的话 我更愿意进行服务器端重定向 以便我可以将项目放入 JSF 页面可以拾取的请求中 有一组数据需要在遗留 servlet
  • 在 pandas 中插入具有随机字符串值的新列

    我有一个数据框 A B C 0 1 2 3 1 2 3 3 2 3 2 1 我需要在 pandas DataFrame 中创建一个新列 并随机填充此列中的 是 或 否 A B C NEW 0 1 2 3 yes 1 2 3 3 no 2 3
  • random.choice() 需要 2 个位置参数,但给出了 3 个

    当我输入以下内容时 rand num random choice 1 101 表明 TypeError choice takes 2 positional arguments but 3 were given 这些都放在函数中 我不明白为什
  • 使用cmake创建UWP包

    我正在开发简单的 hello world 应用程序 main cpp include
  • N1QL 错误索引扫描超时 - 原因:索引扫描超时

    我在 couchbase 4 1 0 上通过 CBQ 对大约 2000 万个文档运行查询时遇到问题 执行查询时 2 分钟超时后会打印此错误 代码 12015 msg 索引扫描超时 原因 索引扫描超时 我的问题是这样的 什么是索引扫描 这是寻