单个节点的多个关系如何影响 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 个类别与项目有数千种关系)。但是,如果您进入图表的 入口点 是项目......获取它所属的所有类别(我想象的只是几个)应该不会造成任何问题。
希望这对您有所帮助,
汤姆
我有一个数据库,它将存储一些用户和属于这些用户的项目。用户和项目将存储为节点。我最初的方法是让一个用户节点具有用户名、电子邮件和具有属性名称和类别的项目的属性,它们之间的关系是:
(item)-[BELONGS_TO]->(user)
阅读 neo4j blog 中的一篇文章后,我将类别 属性 移到了一个单独的节点中,因为它可能属于多个项目。
我担心的是,现在在上千条的场景下,类目节点会有上千条关系。如果我要搜索单个项目及其所属的类别,这将如何影响整体性能?
您可以避免必须通过 indexing category
属性 个 Item
个节点创建 Category
个节点以及与它们的关系。这将使您能够快速找到属于一个类别的所有项目。
密集节点确实是一个问题(并且有很多方法可以提高性能/解决问题)。话虽如此,这里的密度是在类别的一侧(1 个类别与项目有数千种关系)。但是,如果您进入图表的 入口点 是项目......获取它所属的所有类别(我想象的只是几个)应该不会造成任何问题。
希望这对您有所帮助, 汤姆