性能 SQL Server 2017 Graph 与 Neo4j

Perfomance SQL Server 2017 Graph vs Neo4j

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

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

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

提前致谢。

graph databaserelational database with graph capabilities 之间在数据存储方式方面存在很大差异。

简单总结一下,当存储了一个triple ( aka 2 nodes connected by a relationship )的时候,底层数据库的差异就是:

  • Neo4j,三元组作为图形存储在磁盘上,节点有指向它们之间关系的指针,因此在检索期间它只是从节点追逐指针
  • SQL 就像:一个节点存储在一个 table 中,另一个节点存储在另一个 table 中,但是您可以 query 作为图形但是操作真的会做一个JOIN

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

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