orientDB遍历非常慢

orientDB遍历非常慢,orientdb,Orientdb,我在使用orientdb时遇到了一些严重的性能问题。 我有一个plocal graph数据库,其中有一个sheme,如下所示,数据是从JSON导入的: PersonA --hasInterest-> InterestA PersonA --hasInterest-> InterestB PersonB --hasInterest-> InterestA PersonB --hasInterest-> InterestB 我的目标是找到与给定兴趣相结合的兴趣。因此,我的查

我在使用orientdb时遇到了一些严重的性能问题。 我有一个plocal graph数据库,其中有一个sheme,如下所示,数据是从JSON导入的:

PersonA --hasInterest-> InterestA
PersonA --hasInterest-> InterestB
PersonB --hasInterest-> InterestA
PersonB --hasInterest-> InterestB
我的目标是找到与给定兴趣相结合的兴趣。因此,我的查询如下所示:

SELECT * FROM ( TRAVERSE out_hasInterest FROM ( SELECT FROM ( TRAVERSE in_hasInterest FROM #12:33 ) WHERE $depth > 0 )) WHERE $depth > 0
其中#12:33为利息

我的真实数据比这个小片段要大一些,因此对于具体的兴趣,有大约500000人有关联,他们平均有大约3个兴趣。所以我将遍历500000+500000*3=2000000个顶点。这似乎没有那么多

查询需要大约100秒。这对我的申请来说太难了

我觉得我做错了什么,真不敢相信我的表现会那么差。 非常感谢您的帮助

致意 路德维希



版本:1.7-rc1

为什么要使用traverse?如果我正确理解您的目标,您可以:

SELECT expand( in('hasInterest').out('hasInterest') ) FROM #12:33

嘿,Lvca,谢谢你的回答。我尝试了你的解决方案,但查询运行了大约半个小时才结束。为什么特拉弗斯走错了路?如果我不知道我的路径有多长,我是否应该使用traverse?谢谢你的回答,Lvca我会尝试一下快照。但我仍然不能相信1.7-rc1的性能会那么差。这取决于许多设置。例如缓存:您是否启用了1级(甚至2级)缓存?OrientDB现在比2014年快很多倍,请使用Lvca的查询重试。