我想问一个关于图形数据库的问题。
首先我在python中使用networkx并在内存中创建图形,但是当我到达更多节点时-我的RAM不足。
因此,下一次我尝试使用neo4j。它很好,在磁盘上写图,但是它很慢(我怎么想。有了索引和其他东西,比networkx慢得多)。现在,我创建了500k节点和2000000个关系,尝试查找两个节点之间的路径,而neo4j只停留在我的服务器上。
我听说过orientdb,但是现在还没有尝试。
所以,我需要建议,最好的图形数据库是什么,谁可以在磁盘上写图形?
非常感谢你。
PS只需要开源图形数据库
答案 0 :(得分:0)
首先,存在真实或本机图数据库或非本机图数据库。本机图数据库实际上将您的数据组织成图结构并将节点彼此连接,而非本机数据库则使用某种模型来存储您的图表示。您可以简单地将图形表示为Adjacency matrix,它是一个表,并且您可以将其存储在带有列的行密钥存储区中(但在我看来,这不是非常有效和愚蠢)。因此,您首先需要问自己是否真的需要图形数据库?其次,您需要考虑要执行的读和写操作。
没有最好的(图形)数据库。但是对于许多不同的用例,有许多不同的数据库-因此,您需要确定确切的用例,然后才能考虑该数据库。
尝试使用neo4j:如果做错了,那么用neo4j编写确实非常慢。也许您想看看有关Neo4j写入性能的question and answer。
答案 1 :(得分:0)
几乎所有图形数据库都可以在磁盘上写入图形。 但是,如果您要进行一些计算,例如进行深度搜索的最短路径(跳数),则内存比磁盘要重要得多。