Star

match查询涉及到多个节点和边时,match后紧跟着的v的结果过多时导致查询很慢

  • nebula 版本:2.0.0beta
  • 部署方式(分布式 / 单机 / Docker / DBaaS):docker
  • 硬件信息
    • 磁盘( 必须为 SSD ,不支持 HDD)500GB SSD
    • CPU、内存信息:40C128G
  • 问题的具体描述
    已知对于节点wp,满足 name='pd’的节点个数<10,满足name='ccc’的节点个数>1000,当执行以下语句时:
match (v1:wp {name: 'pd'}) <-[e:wpc]- (v2:wp{name: 'ccc'}) return v1,v2

结果返回时间<0.01s
当执行以下语句时:

match (v2:wp{name: 'ccc'}) -[e:wpc]->  (v1:wp {name: 'pd'})  return v1,v2

结果返回时间>10s

猜测是match查询每次都是从紧跟着match的节点开始进行查询。能否在match查询中手动指定查询的起始节点是v1还是v2?

如果只涉及2个节点,那么对调v1,v2的位置可以解决上述问题,但是涉及到3个或更多节点和边时,就不太好解决了

match (v2:wp{name: 'ccc'}) -[e1:wpc]->  (v1:wp {name: 'pd'}) -[e2:wpc]->  (v3:wp {name: 'aaaa333'})  return v1,v2,v3

请问,上述问题有没有解决办法?

mark,慢的有点不正常

profile看一下呢

这个case要优化起点得等cbo优化器了

1赞

浙ICP备20010487号