如果我有一个大图,我如何存储它,使它仍然很容易通过,最好不用把它拉回内存。这个问题既与平台无关,也与语言无关。我将选择适合这个问题的语言和平台,而不是试图用错误的平台强行解决问题。
发布于 2012-07-16 17:24:13
也许一个图表数据库能满足你的需要。Neo4J是这样一个数据库系统的java实现。
发布于 2012-07-16 17:23:53
有专门为此目的定制的数据库系统,即图形数据库。我自己也没有使用过,但这篇文章列出了几个这样的系统,其中一些是免费的。
完整性:使用存储在常规SQL数据库中的图形是可能的,但不需要将其全部加载到内存中(而且效率不高)。作为一个例子,我的一个朋友在T中实现Dijkstra最短路径算法.
发布于 2012-07-16 17:33:30
好的,您可以简单地将图存储为节点列表,将唯一的ID附加到每个节点,并将相邻节点ID的列表与节点一起存储。
因此,您基本上可以看到相邻的节点ID,而无需从数据库中提取整个图,并查询数据库中的相邻节点。(节点ID是主键的一个很好的候选。)
https://stackoverflow.com/questions/11509331
复制相似问题