SQL(MySQL)与NoSQL(CouchDB)
我正在设计一个高度可扩展的应用程序,它必须存储大量数据。 举个例子,它会存储很多关于用户的信息,然后像很多消息,注释等。我之前一直使用MySQL,但现在我很想尝试一些新的,比如couchdb或者类似的不是SQL的东西。
有没有人有任何想法或指导呢?
这是来自Dare Obasanjo最近一篇博客文章的引用。
SQL数据库就像自动传输一样,NoSQL数据库就像手动传输一样。 一旦切换到NoSQL,您将负责系统在关系数据库系统中自动处理的大量工作。 类似于通过自动传输选择手动时发生的情况。 其次,NoSQL通过消除关系数据库从数据库层进行的大量完整性检查,使您可以从系统中获得更高的性能。 再次,这与您如何通过驾驶手动变速器而不是自动变速器车辆获得更多性能相似。
然而,最显着的相似之处在于,就像我们大多数人不能真正利用手动变速器车辆的好处一样,因为我们的大部分驾驶都是在上下班途中坐在交通路口上,所以有类似的残酷现实因为大多数网站并不是Google或Facebook的规模,因此不需要Bigtable或Cassandra。
对于我只能添加从具有至少一些经验的MySQL切换到没有经验的CouchDB,意味着您将不得不处理一组全新的问题,并学习不同的概念和最佳实践。 虽然这本身是非常棒的(我在MongoDB中玩的很多,并且喜欢它),但在估算项目的工作时需要计算一定的成本,并且带来未知的风险,同时保证未知的优势。 如果你能按时完成项目,并且想要成功的质量,那么很难判断你是否能够按时完成项目,如果它基于你不知道的技术。
现在,如果你在NoSQL领域拥有一名专家,那么请务必仔细阅读。 但是,如果团队没有任何专业知识,不要跳过NoSQL来开发新的商业项目。
更新 :仅仅是在开始的时候将一些汽油放入开放式火炉中,这里是来自SQL阵营人员的两篇有趣的文章。 :-)
我不能等待NoSQL死掉(原文不见了,这是一个副本)
争取NoSQL思想,虽然这不是反NoSQL片断
更新 :这里有一篇关于NoSQL的有趣文章
认识NoSQL
似乎今天只有真正的解决方案围绕扩展或分片。 所有现代数据库(NoSQL和NewSQL)均支持在数据库层开箱即可进行水平缩放,而无需应用程序分割代码或其他东西。
遗憾的是,对于值得信赖的古老MySQL,sharding不是“开箱即用”提供的。 ScaleBase(免责声明:我在那里工作)是一个全面的横向扩展解决方案的制造商,如果你愿意的话,它可以是“自动分片机”。 ScaleBae分析您的数据和SQL流,在数据库节点之间分割数据,并在运行时聚合 - 因此您不必! 它免费下载。
不要误解我的意思,NoSQLs很棒,它们是新的,新的是更多的选择,而且选择总是很好! 但选择NoSQL带有价格,确保你可以支付...
你可以在这里看到更多关于MySQL,NoSQL ...的数据:http://www.scalebase.com/extreme-scalability-with-mongodb-and-mysql-part-1-auto-sharding
希望有所帮助。
最好的选择之一是去支持可扩展性的MongoDB(NOSql dB)。与sql中的行和表不同,存储大量数据只是文档形式的bigdata。这是更快速的,遵循shradding数据。使用replicasets以确保数据保证能够维护以主数据库服务器为基础的多台服务器。 语言独立。 灵活使用
链接地址: http://www.djcxy.com/p/26861.html上一篇: SQL (MySQL) vs NoSQL (CouchDB)
下一篇: Domain Driven Design: Domain Service, Application Service