Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph 简单图形数据库_Graph_Graph Databases_Breadth First Search - Fatal编程技术网

Graph 简单图形数据库

Graph 简单图形数据库,graph,graph-databases,breadth-first-search,Graph,Graph Databases,Breadth First Search,我知道Neo4j,RedisGraph,DGraph,ArangoDB 但我不想要如此繁重的客户机/服务器应用程序。我只需要加载400万个节点和1000万个关系,并请求两个节点之间的最短路径。未加权且未定向的图形 我用BFS算法在笔记本电脑上编写了一个Go代码,可以在2秒内在内存中完成这项工作。但我不必重新发明轮子。我不能像Neo4j那样在几毫秒内完成 有开源项目吗?如果您所做的只是计算双向最短路径,那么可能不需要完整的图形数据库。我建议您看看现有的图形库,它们可以快速地将图形加载到内存中,并且

我知道Neo4j,RedisGraph,DGraph,ArangoDB

但我不想要如此繁重的客户机/服务器应用程序。我只需要加载400万个节点和1000万个关系,并请求两个节点之间的最短路径。未加权且未定向的图形

我用BFS算法在笔记本电脑上编写了一个Go代码,可以在2秒内在内存中完成这项工作。但我不必重新发明轮子。我不能像Neo4j那样在几毫秒内完成


有开源项目吗?

如果您所做的只是计算双向最短路径,那么可能不需要完整的图形数据库。我建议您看看现有的图形库,它们可以快速地将图形加载到内存中,并且具有用于最短路径的内置函数。例如:


图形数据库将为您提供持久性,但在维护数据库和可能需要学习如何利用该图形数据库支持的查询语言这两个方面需要权衡。图形数据库非常适合连续更新图形或执行更多自定义查询/路径查找。

如果您所做的只是计算双向最短路径,则可能不需要完整的图形数据库。我建议您看看现有的图形库,它们可以快速地将图形加载到内存中,并且具有用于最短路径的内置函数。例如:


图形数据库将为您提供持久性,但在维护数据库和可能需要学习如何利用该图形数据库支持的查询语言这两个方面需要权衡。图形数据库非常适合连续更新图形或执行更多自定义查询/路径查找。

是否需要持久存储图形?是否能够随着时间的推移进行更新?或者这只是一个偶尔“一次性”的计算,每次重新加载图形就足够了?实际上,数据库是固定的。我不需要更新节点或边。所以这应该是持久的。或者我可以在开始时将其加载到内存中。是否需要永久存储该图形?是否能够随着时间的推移进行更新?或者这只是一个偶尔“一次性”的计算,每次重新加载图形就足够了?实际上,数据库是固定的。我不需要更新节点或边。所以这应该是持久的。或者我可以在开始时将其加载到内存中。