对一个Tag创建属性索引之后 是否会影响到别的Tag的查询?

提问参考模版:

  • nebula 版本:3.2.2
  • 部署方式:单机
  • 安装方式:Docker
  • 是否为线上版本:N
  • 硬件信息
    • 磁盘
    • CPU、内存信息
  • 问题的具体描述
    我创建了10个Tag, 每个Tag都含有多个属性,每个Tag对应的点的数量从1个到10万个不等。我对每个Tag都创建了属性索引,包含m, n, p 3个属性(m n p是所有Tag都含有的属性)。这时候,我把Tag1的属性索引由m, n ,p改为了m, n, p, q,针对q属性的查询速度快了很多。但当我把10个属性索引都由m, n ,p改为了m, n, p, q后,针对q属性的查询速度又慢了下来,甚至比不对q做索引的查询速度还要慢。想问一下 这是什么原因?

附上我的查询语句

match (v: TagA)-[e:Edge1]->(v2: Tag1)
    where v.Tag1.q == 'a'
    return v.TagA.prop1,  v2.Tag1.prop2,  v2.Tag1.prop3,  v2.Tag1.prop4 

针对TagA有一个Tag索引,针对Edge1有一个Edge索引,在这个过程中没有做任何的变更。修改的索引都是针对Tag1的。

建了上述索引之后,可能数据量大增。导致rocksdb层级变高,而导致变慢。可以考虑做一下compaction。

大概知道原因了 查询条件没有满足索引左匹配原则,索引并没有生效,所以速度都很慢。为什么会更慢我再确认一下

嗯,有可能。需要看下具体执行计划,对比下 IndexScan 中的 schemaId 和 indexCtx::index_id 是否有变化。

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。