ngql性能优化,以及可行性方案

nebula 版本:3.5.0
部署方式:目前单机,后面可能分布式部署
安装方式:二进制版本
是否上生产环境:N

以前使用neo4j能查询出来,数据量大概在80万左右,现在切换nebula数据库,用studio后台查询时,nebula服务器直接崩了。

需求:通过一系列查询得到with g1,g2,以及连接点gIds,linkIds两个id集合,两个id集合有且只有一条路径将g1,g2连接起来。

个人方案:

1 MATCH (g1:Geo)-[e:connected]-(l:Link) WHERE id(g1)=‘xxx’ and dst(e) in linkIds RETURN l.Link;
得到连接g1的下一个点 l1,然后在linkIds集合中去除l1;
2 MATCH (l1:Link)-[e:connected]-(g3:Geo) WHERE id(l1)=‘xxx’ and dst(e) in gIds RETURN g3.Geo;
得到连接l1的下一个点g3,然后在gIds集合中去除g3;重复第一步;

if(id(g3)==id(最终点g2)) break;到了终点; 用一个集合记录走过的点,就是一条完整的路径path;

if(linkIds = 空集合 或者 gIds = 空集合 ) break;

缺陷:频率的数据库 i/o,估计50-80次数据库查询;性能改如何优化;

各位大佬帮忙看看,有啥比较好的方案,谢谢啦

看了你上一个帖子:nGQL 查询路径,以及性能优化

match p3=(g1:geo)-[r*]-(g2:geo) wher e all (n in nodes(p3) where id (n) in midids ) return p3

这个是你neo4j的语句是吗?

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