多个数据库'在一个图表数据库

时间:2017-03-14 22:45:56

标签: database-design neo4j graph-databases database-partitioning

我使用GrapheneDB来托管我的neo4j数据库(db)。

问题

我有N个客户,我正在寻找自动分隔其内容(其唯一数据库)的方法,以便:

  • 它与数据不重叠
  • 操作速度没有受到损害。

选项1

由于我不熟悉自动创建新的neo4j服务器,并希望保持简单,我的想法是在图表中为每个databaseIdnode添加一个唯一的relationship

然后显然我会考虑使用该限制的查询。

选项2

另一个想法是创建根节点并为具有根节点的所有节点创建关系。

问题

我的问题是:

  • 哪个选项在速度和效果方面更好?
  • 这是一种可行的方法,即你看到优点/缺点吗?
  • 当我有大量数据(N --> /inf)时会影响速度吗?我的想法是,它不会因为你应用databaseId限制(例如在noSQL中这完全正常),但我不确定它是否也适用于neo4j图db。

1 个答案:

答案 0 :(得分:1)

作为一般性建议(因为我对您的用例一无所知),我会尝试为每个“逻辑数据库”(LDB)使用不相交的节点标签集。这样可以轻松创建和访问属于特定LDB的节点。并且,如果您只在具有属于同一LDB的标签的节点之间创建关系,那么图遍历也将保持在相同的LDB内。

Neo4j可以通过标签快速获取节点,您还可以创建索引,以便有效地找到标签/属性组合。