节点类型数量的增加是否会影响图形数据库的性能?

Does an Increased Number of Node Types Impact Performance of Graph DBs?

我正在创建图形数据库,这是一个简单的电影数据库,包含演员、制片人、导演等多种类型的信息。

我想知道的是,将您的节点分解到更细粒度的级别是否更好?例如,'actors' 和 'directors' 有两种节点更好还是只有一种节点更好,比如 'person' 并使用不同类型的关系,如 'acted_in' 和 'directed'?这有关系吗? 另外,对遍历查询有影响吗?节点类型越多是否意味着遍历越慢?

注意:我打算使用 Amazon Neptune 中的 Gremlin 控制台来实现它。

答案真的是视情况而定。如果我正在构建这样的模型,我会将关键的“名词”分解为它们自己的节点。我还会适当地标记边缘,例如 ACTED_IN 或 DIRECTED.

任何图形查询的性能取决于它需要接触多少数据(从深度到深度的扇出因子)。

我能给你的最好建议是想想你需要图表回答的问题,并尝试设计你的数据模型,以便尽可能容易地编写这些查询。不要害怕在您的数据模型上多次迭代。这是常见的和意料之中的。

当您想向节点添加一条唯一信息时,属性会很有用 - 也许是导演的生日。

边缘属性可用于过滤掉不需要的边缘,但边缘标签也可以。在某些情况下,您可能会发现诸如 DIRECTED-IN-2005 之类的标签是避免检查标签和边缘上的 属性 的有用快捷方式。