我遇到了多种意见,图表数据库往往会出现聚合操作问题。就像你有一组用户并想要达到最大年龄一样,RDBMS将胜过图数据库。是真的,如果是的话,背后的原因是什么?据我所知,关系数据库和图形数据库之间的关键区别在于每个图形数据库节点都以某种方式包含对它所连接的节点的引用。它如何影响“获取最大年龄”的查询?
免责声明:我读过的大部分内容都是关于Neo4j的,但我想如果存在这些限制,它们应该适用于任何图形数据库。
答案 0 :(得分:0)
在处理连接数据和复杂查询时,建议使用像Neo4j这样的图形数据库。
Rik Van Bruggen的书Learning Neo4j声明在处理简单的面向聚合的查询时不应使用图数据库:
从书中可以看出:
(...)简单查询,其中写入模式和读取模式对齐 我们试图存储的聚合通常是相当完整的 在图表中效率低下,并且可以更有效地处理 面向聚合的键值或文档存储。如果复杂性很低, 使用图形数据库系统的优势也会降低。
这背后的原因与持久性模型的性质密切相关。对表格数据进行sum
,max
或avg
操作比以图表形式存储的数据更容易。