大图遍历:应该使用哪个库?

时间:2014-02-07 08:26:33

标签: sql graph neo4j social-networking

我必须以BFS方式处理图形遍历,最远可达3度。问题在于图表的大小,我有近百万个节点和总共几十亿个边缘。我天真地实现SQL所花费的时间太慢了,有什么特定的东西我可以实现吗?或者如果我切换到像Neo4j这样的图形数据库会更好吗?有没有人有这样规模的基准?

1 个答案:

答案 0 :(得分:0)

您问题的答案实际上取决于数据库的“连接性”。您可以每秒遍历~100万条边。因此,如果您的3度跳需要遍历大部分数据,那么它将非常慢,但是如果它只需要遍历几个节点就会很快。

想想就像坐在足球场一样。如果你的3个跃点是'谁'坐在你的3个座位内,你没有很多节点可以遍历。 但是,如果你的问题是“哪个利物浦的支持者,有围巾并穿着红色?”,那将需要很长时间。

此时neo4j的节点和边缘也有32位地址空间,因此您可能会耗尽数十亿个节点的空间。

希望这有帮助