我在我的项目中使用 OrientDB,我真正关心的是性能。我创建了大数据来测试它,有 500 000 人和 500 000 个兴趣,以及人和人之间的随机关系(2 496 540 个关系),以及人和兴趣(3 322 060 个关系)。
我需要做的是遍历顶点和边。我试过格雷姆林。对于朋友少于100的人,获得共同的朋友大约需要10-20秒,但如果一个人有数千个朋友,这将无法正常工作,需要太多时间。
g.v(id).both('KNOWS').as('here').both('KNOWS').has('id', '10:20').back('here').dedup.email
对于朋友少于 100 的人来说,获得朋友推荐大约需要 40-50 秒,但当一个人有数千个朋友时也是如此。
x=[g.v(id)];g.v(id).both('KNOWS').aggregate(x).both('KNOWS').except(x).dedup.email
这些是 OrientDB 快速进行这种遍历的任何方式吗?
OrientDB SQL遍历只支持深度优先遍历,两个人之间似乎不可能找到共同好友,好友推荐复杂。我错过了什么?
感谢您的回答!