何时不应使用Neo4j?

26

Neo4j是一款用于映射关系型数据的强大工具,但我很好奇在什么情况下它不适合使用。

哪些使用案例下使用Neo4j会是一个坏主意?


5
准备应对SO网站的围攻。 - Alexander Mills
1
极高的写入负载是一种反向使用情况:请参见https://dev59.com/wmEi5IYBdhLWcg3wK5nd - DNA
1
请参阅此帖子,了解为什么Facebook不使用Neo4j。 - DNA
3
嘿,Facebook确实面临着行星级的数据管理挑战,这是毋庸置疑的,而如此之大的规模需要超定制的解决方案。但是业内太多人倾向于将大公司(例如Facebook、亚马逊、谷歌等)视为“酷”和“引领潮流”的代表,而事实上他们的用例并不真正代表大多数行业和用途。每秒10亿次读取并不是常见的技术要求。 - FrobberOfBits
2个回答

23

您可能想要查看这个幻灯片,特别是第18至22页。

您的问题可能涉及很多细节,但让我试着聚焦于重点。图形数据库通过关系进行自然索引。因此,当您需要遍历大量关系时,图形数据库将非常实用。图形本身非常灵活,因此当数据之间的相互连接需要不时更改或者核心对象的数据存储需求发生变化时,它们也会非常实用。图形是一种非常自然的建模某些(但并非所有)数据源的方法,例如点对点网络、道路地图、组织结构等。

图表通常不擅长管理大量的事物列表。例如,如果您要构建带有分析功能的客户交易数据库(其中需要100万个客户、5000万笔交易,并且您整天都在发布交易),则可能不太合适。RDBMS非常擅长处理这种情况,注意到这种用例实际上并没有充分利用关系。请务必阅读我提供的这两个链接,它们有更多讨论。

0

出于维护原因,任何汇总数据源的服务都应该保持其来源独立性。如果我想探索不同数据源之间的关系,可以在应用程序级别使用数据跟踪(例如)用户对其他数据源的偏好来实现。

图形数据库是关于管理关系复杂性的,但在许多情况下,这种复杂性是一种设计选择。把你所有的孩子放在一个浴缸里没问题,直到你掉了肥皂。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接