一个图形数据库中的多个 'databases'
Multiple 'databases' within one graph database
我使用 GrapheneDB 托管我的 neo4j 数据库 (db)。
问题
我有 N
个客户,正在寻找自动分离他们的内容(他们唯一的数据库)的方法,这样:
- 不与数据重叠
- 操作速度没有受到影响。
选项 1
由于我不熟悉自动创建新的 neo4j 服务器,并且希望保持简单,我的想法是为每个 node
和 relationship
附加一个唯一的 databaseId
图。
那么显然我会在考虑该限制的情况下应用查询。
选项 2
另一个想法是创建一个根节点并为所有节点与根节点创建关系。
问题
我的问题是:
- 哪个选项在速度方面更好,提高了多少?
- 这个方法可行吗,即你看到了吗advantages/disadvantages?
- 数据量大(
N --> /inf
)会不会影响速度?我的想法是它不会因为你应用 databaseId
限制(例如在 noSQL
中这工作得很好),但我不确定它是否适用于 neo4j 图形数据库。
作为一般性建议(因为我对您的用例一无所知),我会尝试为每个 "logical DB"(LDB ).这将使创建和访问属于特定 LDB 的节点变得容易。而且,如果您仅在具有属于同一 LDB 的标签的节点之间创建关系,那么图遍历也将保留在同一 LDB 中。
Neo4j 可以通过标签快速获取节点,您还可以创建索引,以便您可以高效地找到 label/property 组合。
我使用 GrapheneDB 托管我的 neo4j 数据库 (db)。
问题
我有 N
个客户,正在寻找自动分离他们的内容(他们唯一的数据库)的方法,这样:
- 不与数据重叠
- 操作速度没有受到影响。
选项 1
由于我不熟悉自动创建新的 neo4j 服务器,并且希望保持简单,我的想法是为每个 node
和 relationship
附加一个唯一的 databaseId
图。
那么显然我会在考虑该限制的情况下应用查询。
选项 2
另一个想法是创建一个根节点并为所有节点与根节点创建关系。
问题
我的问题是:
- 哪个选项在速度方面更好,提高了多少?
- 这个方法可行吗,即你看到了吗advantages/disadvantages?
- 数据量大(
N --> /inf
)会不会影响速度?我的想法是它不会因为你应用databaseId
限制(例如在noSQL
中这工作得很好),但我不确定它是否适用于 neo4j 图形数据库。
作为一般性建议(因为我对您的用例一无所知),我会尝试为每个 "logical DB"(LDB ).这将使创建和访问属于特定 LDB 的节点变得容易。而且,如果您仅在具有属于同一 LDB 的标签的节点之间创建关系,那么图遍历也将保留在同一 LDB 中。
Neo4j 可以通过标签快速获取节点,您还可以创建索引,以便您可以高效地找到 label/property 组合。