我是新的图形数据库,有一个问题,可能是很容易回答给你们。
如果我决定在像应用程序这样的社交网络中使用图形数据库(例如Neo4j),我是否也会在该数据库中保存配置文件信息和帖子,还是需要第二个数据库(如MySQL )?
我发现的所有示例都只在图数据库中保存了几个属性(例如名称和关系)。所以我的问题。
非常感谢
发布于 2015-02-25 21:06:14
您可以直接将该信息存储在图形数据库中。这不仅是可能的,而且是建议的,因为这些信息可能会影响您想要在数据库上运行的各种遍历查询。
在任何时候,您都可能希望为用户创建一个单独的层,该层可以进行大量交互(通过发布)。将这些信息放在图形数据库中是很方便的。
配置文件信息也是如此。也许您希望只对特定类型的配置文件(单人,等等)运行遍历。然后,您需要将这些信息放在图形数据库中。
我要说的是:除非您有特定的理由在图形数据库旁边使用MYSQL,否则您可能应该在图形数据库中做所有事情。
有些事情要记住:
额外关注:
因此,我应该为每个配置文件创建一个节点,包含配置文件属性和与post节点的关系?
这有点棘手,答案是肯定的,但取决于用户发布的帖子数量,用户节点(顶点)可能会成为超级节点。“超级节点”是具有不成比例的高入射边缘数目的顶点。这可能导致性能问题。为了解决这个问题,您需要确保图db能够正确地处理这些实例;通常是通过实现以顶点为中心的索引。我已经有一段时间没有检查过了,但是上次我这样做的时候,Neo4j不支持这些。OrientDb和土卫六(和其他人)是这样做的。如果Neo4j现在有一些支持,有人可以纠正我。
这将取决于你决定如何遍历这个图,你认为你需要在遍历中扫描多少个外向的边等等。等等。通常,您需要通过确定要进行的查询来开始这个过程,然后对图形进行相应的建模。
Neo4j和OrientDb之间的限制有什么不同?
Neo4j的局限性似乎是从理论上定义的。从这里的额外评论来看,他们似乎计划在短期内增加它们。OrientDb和土卫六被认为是大得多的图表的数据库,因此目前它们的限制更高。在现实中,即使这些限制是相当遥远的,真正的问题是“你要打击它们吗”。我过去曾对此做出过肯定的回答,这也是我今天使用泰坦的原因。但Neo4j的局限性通常很高,足以满足大多数人的需求。
https://stackoverflow.com/questions/28729383
复制相似问题