Perfomance SQL Server 2017图形与Neo4j

时间:2019-02-15 08:06:44

标签: sql-server graph neo4j time-complexity relational-database

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

Image, lookup in SQL-server

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

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

谢谢。

1 个答案:

答案 0 :(得分:3)

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

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

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

基于这两个事实,我们可以说在原生图中,连接是在写入时执行的,而不是在非原生图中在查询时执行连接。

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