很多人都在谈论相反革命性的NoSQL数据库,比如卡桑德拉、CouchDB、超表、MongoDB、伏地魔计划、BigTable等等。就我而言,最强大的优点是可伸缩性、性能和简单性。
我正在认真考虑在我们的下一个项目中使用一些非关系数据库。然而,有些团队是由一些RDBMS狂热分子组成的,因此,在某些情况下,仅仅是出于情感上的原因,说服硬切换可能是不可能的。此外,当涉及到复杂的数据模型时,我个人仍然相信RDBMS具有低层次的一致性执行机制的力量。
现在我的问题来了:我想知道,是否有人会认真考虑在一个新项目中同时使用RDBMS和非关系数据库:复杂但不是性能关键的数据模型仍将使用关系模型和db实现,而所有性能关键的模型都将使用非关系数据库来实现。此外,这样一个软范式的转变会更容易卖给一些高度情绪化的团队成员,而不是一个艰难的团队成员。
有人会推荐这样的方法吗?还是你更愿意推荐一种黑色或白色,即关系或非关系的方法?欢迎所有评论!
问:你知不知道这种混淆是否适用于Spring和Hibernate/JPA?
发布于 2010-07-08 15:42:33
罗布·康纳里最近写道介绍了他用MongoDB和MySQL构建流行的web应用程序TekPub的经验,强调了两者的优点:
高阅读的东西(帐户信息,制作和插曲信息)是完美的“现在”的事情,如MongoDb。“昨天发生的事情”对于关系系统来说是完美的。
在较高级别上,Rob将应用程序数据分解为两个范围:运行时数据和历史数据。例如,用户购物车的当前状态对于保持在MongoDB中是很好的。它是一个不断变异的物体。记录购物车的进进出出情况;何时发生;结帐状态对于MySQL中的关系型表格数据来说是很好的。
他在此总结如下:
它工作得很完美。我对我们的安排感到非常高兴。这是难以置信的低维护,我们可以支持它像任何其他解决方案,我们有我们需要的数据,当我们需要它。
2016年5月更新(6年后)
在过去的6年里,这种情况才变得更加真实。现在常见的情况是,NoSQL数据库支持事务性存储,而传统关系数据库支持分析数据库。
发布于 2010-07-08 15:53:28
我两种都用。RDBMS有利于多个用户以不同方式访问复杂的分析、报告和数据。当我从单个用户的角度查看数据时,NOSQL是很棒的。我问自己的一个问题是:“谁在访问这些数据?”如果答案是1用户,我使用NOSQL存储它。
当然,也有其他时候是合适的,但这只是一个例子。
正如您所提到的,NOSQL是更简单的存储,它可能导致您必须纠正复杂的代码来维护数据.例如,存储连接列表。
https://stackoverflow.com/questions/3208821
复制