性能 SQL Server 2017 Graph 与 Neo4j

Jer*_*man 7 graph relational-database time-complexity neo4j sql-graph

我正在研究图形数据库。我偶然发现了 SQL Server 2017 并了解到他们添加了使用图形数据库的选项。但我对性能有一些不确定性。我看了几个关于这个 SQL Server 2017 Graph 的 Youtube 视频、教程和论文。例如这个页面

图像,在 SQL-server 中查找

记住上面的图像。当我试图找到一个节点时,时间复杂度是 O(n) 是真的吗?在其他图形数据库(如 Neo4j)中的性能是否相似?我只是在谈论节点查找,而不是最短路径算法等。

我也有一种感觉,SQL Server 中的图形功能只是变相的关系数据库。这样对吗?

提前致谢。

Chr*_*sen 7

在数据存储方式方面, agraph database和 a之间存在很大差异。relational database with graph capabilities

简单总结一下,当 atriple ( aka 2 nodes connected by a relationship )被存储时,底层数据库的差异将是:

  • Neo4j,三元组作为图形存储在磁盘上,节点具有指向它们所具有的关系的指针,因此在检索期间,它只是从节点追逐指针
  • 像SQL一样:一个节点存储在一个表中,另一个节点存储在另一个表中,但你可以query作为图表,但操作将真正制作一个JOIN

基于这两个事实,我们可以说,与非本机图中在查询时进行联接相比,在本机图中联接是在写入时执行的。

当你听到distributed图表、分区、行星比例等类似内容时要非常小心。如果您开始建立必须通过网络遍历的关系,您将始终遇到性能问题。大多数分布式图平台还指出,为了获得最大性能,您必须将所有内容存储在一个分区上(这违背了分区目的)。