我们正在开始一个新项目并为我们的案例寻找合适的存储解决方案。 存储的主要要求如下:
首先,我们淘汰了所有RDBMS,因为我们拥有非常灵活的架构,也可以由客户更改(添加新字段等), 所以在任何RDBMS中支持这样的解决方案都会成为一场噩梦...... 我们来到NoSQL。我们评估了Sevaral NoSQL存储引擎,并选择了3个最合适的(我们认为)。
优点:
缺点:
优点:
缺点:
优点:
缺点:
所以现在,Neo4j和OrientDB之间存在的主要困境(MongoDb是第三种选择,因为它缺乏在我们的案例中非常重要的关系 - this post解释了陷阱)。我搜索了这些dbs的任何基准/比较,但所有这些都是旧的。以下是功能http://vschart.com/compare/neo4j/vs/orientdb的比较。所以现在我们需要已经使用过这些dbs的人的建议,选择什么。提前致谢。
答案 0 :(得分:2)
我认为每种方法都有一些有趣的权衡:
所以你的选择是在图形商店(neo4j或orient)和文档商店(mongo或orient)之间。我的感觉是MongoDB是领先的文档存储,而Neo4j是领先的图形数据库,它将引导我选择其中一个。但由于连接很重要,我倾向于使用图形数据库并使用Neo4j。
Neo4j的可扩展性已得到证实:它适用于大于Facebook的图形以及沃尔玛和EBay等大公司。因此,如果您的问题在Facebook社交图的0-120%之间,Neo4j可以让您满意。使用Neo4j可以很好地写入吞吐量 - 我在笔记本电脑上每秒可以获得超过2,000个正确的ACID事务处理,并且我可以轻松地将写入排队等多个。
其他一切都非常平等:您可以选择支付其中任何一项或在其开源许可下自由使用它们(如果您可以使用GPL / AGPL,则包括Neo4j)。 Neo4j的付费许可证得到了极大的支持(全天24x7x365,全天1小时的转变),而OrientDB的支持相当平淡(仅限欧盟白天4小时的转变),我认为MongoDB也有很好的支持(尽管我还没有检查过)。
简而言之,Neo4j是连接数据的顶级数据库是有原因的:它踢屁股!
吉姆
答案 1 :(得分:2)
纠正有关mongoDB的一些误解
话虽这么说,mongoDB可能在一个基本要求中失败,尽管这实际上取决于你如何定义它:临时分析。我的建议是使用面向文档的方法建模目标数据结构(与在面向文档的数据库上放置关系方法相反),并将一个可能的分析用例与虚拟数据进行原型化。 / p>