如果连续查询大量点,并且存在多个稠密点(拓展边10000个左右)的问题

提问参考模版:

  • nebula 版本:3.5
  • 部署方式:分布式
  • 安装方式:源码编译
  • 是否上生产环境: N

python代码如下,filter是边类型,id是指vid
‘MATCH(v)-[e : {} * 1]-(v2) WHERE id(v) == {} return id(v2) limit 2’.format(filter, id)
,现在是有1000个这样的id,对所有chunk切成5个列表开了5个线程用session去查,这样子查询速度会非常非常的慢为了优化查询速度使用了使用了limit限制(只需要有数据就可以),但是在稠密点面前依然会很慢,感觉limit并没有起到优化速度的作用,请教一下有什么更好的优化建议吗

limit 有没有起到优化的速度,你可以看下这个语句中的 limit 是不是有被下推了,通过 EXPLAIN和PROFILE - NebulaGraph Database 手册 这两个可以看到生成的执行计划中,是否有数据下推的情况。

老师好,感谢回复!想知道有没有更好的对于稠密点查询的建议呢,目前使用的是match查询,我只需要几条数据结果,但是match的查询速度实在有点慢,有没有更好的优化查询的策略呢,还有一个问题,我现在有一组数量庞大的vid数组,按照官方给的建议是创建多个session去查,这样子是否还有更好的优化方案呢

可以尝试用go,你结果只要id的话,go会比match快一些

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