Match语句查询多关系的点较慢问题

nebula版本:2.0.1
nebula-studio版本:2.0.0
描述:我们遇到这样的情况,某些节点的边(即关系)比较多,在查询的过程中去重,反应速度比较慢,慢到无法应用的程度(花费14s)。为什么查询这么慢,我们理解的是,二度关系有大量的重复。举例说明:假如有10个点,点与点之间两两关联,2度关系路径,会产生a-b-c、a-d-c、a-e-c、a-f-c、a-g-c…
使用如下命令查询:“MATCH (v:cust)-[e:similar*2]-(v2:cust) WHERE id(v) IN [‘C09050021’] and e[0].ratio>0.9 and e[1].ratio>0.9 RETURN v2;”

请问有什么好的解决方案吗?

下图是通过VID查询得到某客户的效果图:

涉及性能问题,把硬件配置贴一下,磁盘类型,CPU 核数和内存大小

profile 一下

前端渲染也要时间吧。profile下

nebula是3台的集群
nebula版本:2.0.1

后台查询结果:

情况说明:
1、这些点比较密集,很多都是两两相连,上面截图的只是大部分点没有双击展开而已,实际展开很多都是两两相连。
2、这个查询需要遍历的路径大概是7W多,一度大概是250-280多,二度一交叉就是7W多的路径

看看有没有优化空间?

基本都是两两相连。遍历的路径有些多,但是需要统计不重复的v2其实也不多。

你在后台运行语句前面加个 profile,看一下执行计划具体耗时




比较耗时的几个计划步骤

Filter 性能退化在 2.0.1 是已知问题,最新的 release 版本已经修复。

除了Filter耗时外,还有project、innerjoin等也比较耗时,升级到最新版本2.5.0,估计类似的场景下,这个请求还是无法达到3秒以内

对的,project 的性能问题也是已知的,我们已经开始做相关的重构和优化,但是 2.5.0 还没有解决 project 的问题,后续版本会有改进。

OK,谢谢答疑,我们就等project得到一定的优化之后,升级尝试吧。

@bai 可以麻烦您提个 issue 然后把链接贴到这边吗?
刚问了下 PM 小姐姐,建议社区用户来提 issue,这样既可以保证问题描述的准确性,也方便用户及时了解到开发进度。

issue在哪里提?麻烦给一下地址

这里哈~ https://github.com/vesoft-inc/nebula/issues

浙ICP备20010487号