Neo4J数据库设计: is it OK to have hubs or is it better to split them?

标签 neo4j graph-databases

我正在考虑 Neo4J (2.0) 数据库的图形数据库设计,并且对其生产力有疑问。

基本上,当用户添加信息时,他们将能够选择各种上下文,这些上下文将标有 @mention 符号。默认情况下,他们将信息添加到@private 上下文中。这些上下文稍后将用于查找相关节点(例如,连接到 @private 上下文)。

问题:拥有不同的 @private 上下文(每个用户都有一个)是否可以提高数据库生产力。或者最好只创建一个 @private 上下文(最终将拥有数千个连接并成为一个非常中心的枢纽),然后在搜索过程中使用关系的属性。

简单地说:就遍历而言,是只有少数超连接节点的图更好,还是将这些节点分成尽可能多的部分更好?

最佳答案

当集线器变得非常大时,它们可能会成为一个问题。一般来说,Neo4j 据说在中等连接的节点上表现良好。不浓也不疏。这是一个模糊的说法,但硬性数字取决于您正在建模的领域的具体情况。一般来说,问问自己将如何查询数据是一件好事。您几乎总是会获取一个用户的上下文,还是还会跨用户进行查询?编写一个测试来创建并使用示例数据填充图表,然后对其运行查询也是一个好主意。您可以看到查询中的更改如何影响性能。您可以测试如果您的集线器达到 10 万个关系,性能将如何变化。

关于Neo4J数据库设计: is it OK to have hubs or is it better to split them?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22119289/

相关文章:

neo4j - 在neo4j(浏览器)中隐藏中间节点

neo4j - BreezeJS 和图数据库

java - 如何在 Neo4J 空间中创建 SimplePointLayer?

graph-databases - ArangoDB:通过 API 创建新的 Foxx 服务

python - Neo4jrestclient错误无法获取root权限

neo4j - Rest配置中使用Neo4jTemplate保存数据太慢

database - neo4j 图数据库的效率

neo4j - Cypher 中的 OPTIONAL MATCH 和 WHERE

shell - 未找到 neo4j-shell-tools、neo4j-shell 自动索引和导入命令

java - Neo4J中如何获取关系的方向?