单个节点的多个关系如何影响 neo4j 数据库的性能

How do multiple relationships for a single node affect performance of a neo4j database

我有一个数据库,它将存储一些用户和属于这些用户的项目。用户和项目将存储为节点。我最初的方法是让一个用户节点具有用户名、电子邮件和具有属性名称和类别的项目的属性,它们之间的关系是:

(item)-[BELONGS_TO]->(user)

阅读 neo4j blog 中的一篇文章后,我将类别 属性 移到了一个单独的节点中,因为它可能属于多个项目。

我担心的是,现在在上千条的场景下,类目节点会有上千条关系。如果我要搜索单个项目及其所属的类别,这将如何影响整体性能?

您可以避免必须通过 indexing category 属性 个 Item 个节点创建 Category 个节点以及与它们的关系。这将使您能够快速找到属于一个类别的所有项目。

密集节点确实是一个问题(并且有很多方法可以提高性能/解决问题)。话虽如此,这里的密度是在类别的一侧(1 个类别与项目有数千种关系)。但是,如果您进入图表的 入口点 是项目......获取它所属的所有类别(我想象的只是几个)应该不会造成任何问题。

希望这对您有所帮助, 汤姆