我使用orientdb有一些严重的性能问题。 我有一个带有如下所示的数据库的数据库,数据是从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是兴趣所在。
我的真实数据比这个小片段要大一些,所以对于一个具体的兴趣,有大约500,000个人,平均有3个兴趣。所以我会遍历500,000 + 500,000 * 3 = 2,000,000顶点。那似乎没那么多。
查询需要~100秒。这对我的应用来说非常重要。
我认为我做的事情非常糟糕,我无法相信表现那么糟糕。 非常感谢任何帮助!
祝你好运 路德维希
版本:1.7-rc1
答案 0 :(得分:0)
你为什么使用遍历?如果我理解你的目标,你可以做到:
SELECT expand( in('hasInterest').out('hasInterest') ) FROM #12:33