#23041·arangodb

同一索引字段上的多个过滤条件 + 根据其他字段进行排序会导致错误的索引选择

作者: matcho创建于 2026年8月4日更新于 2026年9月15日

哈罗

查询1按预期使用“computing.image tags[].name”上的索引,计算出“image tags[].value”,而且速度非常快。

查询2(多过滤条款)在“date created”上切换索引。

这前后不一致,似乎并不相关,因为同一领域的2个过滤条款比1条更具限制性.

编辑:`3.12.8' 版企业

谢谢 谢谢

马蒂亚斯

收集中的索引(许多其他索引):

  • 名称 * 类型 * 字段 * 唯一 * 选择性 * {} 页:1
  • idx 17007326947326976 * 持续时间 * 日期 * 创建日期 * 地理记录 lat * 虚假 * 62.96% * idx 1825111849464496128 持续计算.image tags[].name,计算.image tags[].value ===虚假 === 1.15% ===

QQ 查询 1

用于在z obs
FILTER"report ai" in o.computed.image tags[*]. Name
SORT 日期 创建DESC
限制 0、100
(原始内容存档于2018-09-26) (英语). Return o. key

解释查询 1

查询字符串( 127个字符, 结果可切换: true):
用于在z obs
FILTER"report ai" in o.computed.image tags[*]. Name
SORT 日期 创建DESC
限制 0、100
(原始内容存档于2018-09-26) (英语). Return o. key


执行计划:
Id NodeType Par Est. 注释
1 Singleton 节点 1 * ROOT
10 IndexNode 162447 - For o IN z obs / * 持久指数扫描,仅扫描 */ * 延迟实现 */
11 物质化 第162447号 - 物质化 o 入会 第7 / * (预测:Q` key','date-create' */LET 第8个=7. ` key',#9 = 7. "date-create")
6 SortNode 162447 - SORT #9 DESC / * 排序策略:受限堆 */
7 限制点100 - LIMIT 0, 100
9 返回点100 - 返回点8

使用的索引 :
按名称类型收集 唯一 Sparse 缓存选择字段
10 idx 18251118494496128 持久z obs 假假 1.15 % ['computed.image tags [*].name','computed.image tags [*].value' [] ("报告 ai"在o. "computed".`image tags' [*]. 'name').

适用优化规则:
Id 规则名称 Id 规则名称 Id 规则名称
1 移动-计算-上 6 取出-过滤-覆盖-逐个索引 11 推倒-后-物质化
2个移动-过滤器-上调 7个去除-不必要的计算-2 12个实现-可互换
3个移动-计算-上-2 8个排序限制 13个优化预测
4个取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取出式取
5个使用索引 10个批次的实物化文件

59条规则已执行,1
. . . . . . .

内容来源: arangodb/arangodb