有很多关于与 cassandra couchdb hypertable mongodb Project voldemort bigtable ,等等。据我所知,最强大的专业人士是可扩展性,性能和简单性。

我认真考虑建议使用一些非关系DB来我们的下一个项目。但是,一些团队包括一些RDBMS狂热品,因此在某些情况下,在某些情况下,在某些情况下可能是不可能的。此外,当涉及复杂的数据模型时,我个人仍然相信RDBMS的力量,其低级别的一致性强制执行机制。

现在这里来了我的问题:我想知道,如果有人可以在一个新项目中使用两个,rdbms 非关系db:复杂,但不是性能关键数据模型仍然存在使用关系模型和数据库实现,虽然所有性能至关重要,但尚未使用非关系DB实现简单的模型。此外,这种软的范式转变将更容易地销售给一些高度情绪化的团队成员而不是硬的。

有人会推荐这样的方法吗?或者你宁愿推荐一个黑色或白色,即关系或非关系方法?所有评论都非常欢迎!


p.s.:任何想法如果这样的混合适用于春天和hibernate / jpa?

有帮助吗?

解决方案

Rob Conery最近写了他的建立他流行的Web应用程序的经验 tekpub 用mongodb和mysql,突出显示:

高读取的东西(帐户信息,制作和剧集信息)非常适合“立即”的东西,如MongoDB。 “昨天发生了什么”的东西是一个完美的关系系统。

在高级别中,Rob将其应用程序数据打入两个范围:运行时数据和历史数据。例如,用户购物车的当前状态非常适合在MongoDB中保持。这是一个不断变异的对象斑点。保持进出购物车的历史记录;当它发生;结账状态对于MySQL中的关系,表格数据很棒。

他总结了:

它完美地工作。我可以在我们的设置中更快乐。这是非常低的维护,我们可以像任何其他解决方案一样备份,我们有我们需要的数据需要它。

更新2016年5月(6年后)

在过去的6年里,这只变得更加真实。它现在是常见的,可以看到NoSQL数据库供电事务存储和传统的关系数据库供电分析数据库。

其他提示

我都使用两者。RDBMS对多个用户以不同方式访问的复杂分析,报告和数据有益。当我从单个用户的角度看数据时,NoSQL很棒。我问自己的问题是:“谁正在访问此数据?”如果答案是1个用户,我将使用NoSQL来存储它。

当然,还有其他时候它是合适的,但这只是一个例子。

如上所述,NoSQL更简单存储,它可能导致您必须对右复杂的代码保持数据...例如,存储连接列表。

非关系键值数据库最适合用于Blob存储和缓存。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top