SQL(MySQL)与NoSQL(CouchDB)

我正在devise一个高度可扩展的应用程序,它必须存储大量的数据。 举个例子,它会存储很多关于用户的信息,然后像很多消息,注释等一样。我之前一直使用MySQL,但现在我正在尝试一些新的东西,比如couchdb或者类似的不是SQL的东西。

有没有人有任何想法或指导呢?

这是来自Dare Obasanjo最近一篇博客文章的引用。

SQL数据库就像自动传输一样,NoSQL数据库就像手动传输一样。 一旦切换到NoSQL,您将负责系统在关系数据库系统中自动处理的大量工作。 与通过自动传输select手动时发生的情况类似。 其次,NoSQL允许通过消除关系数据库从数据库层进行的大量完整性检查,从而提高系统的性能。 同样,这与您如何通过驾驶手动变速器而不是自动变速器车辆获得更多性能相似。

然而,最显着的相似之处在于,就像我们大多数人不能真正利用手动变速器的好处一样,因为我们的大部分驾驶都是在上下class途中坐在交通工具上,也有类似的残酷现实因为大多数网站不是Google或Facebook的规模,因此不需要Bigtable或Cassandra。

我只能把从MySQL至less有一些经验的切换添加到你没有经验的CouchDB,意味着你将不得不面对一个全新的问题,学习不同的概念和最佳实践。 虽然这本身是非常棒的(我在MongoDB中玩的很多,而且喜欢它),但是在估算项目的工作时需要计算一些成本,并带来未知的风险,同时保证未知的收益。 如果你能按时完成项目,并且想要成功的质量,那么很难判断它是否基于你不知道的技术。

现在,如果你在NoSQL领域拥有一名专家,那么请务必仔细阅读。 但是,如果团队没有任何专业知识,就不要跳槽到NoSQL来做一个新的商业项目。

更新 :仅仅是在开火的时候扔掉一些汽油,这里有两个有趣的文章,来自SQL阵营的人。 🙂

我等不及NoSQL死了 (原文不见了,这是副本 )
争取NoSQL思想,虽然这不是反NoSQL片断
更新 :这里是关于NoSQL的一篇有趣的文章
使NoSQL有意义

似乎今天只有真正的解决scheme围绕扩展或分片。 所有的现代数据库(NoSQL和NewSQLs)都支持在数据库层开箱即可进行水平扩展,而不需要应用程序具有分片代码或其他东西。

遗憾的是,对于值得信赖的古老的MySQL,“分箱”不提供分片。 ScaleBase (免责声明:我在那里工作)是一个完全的横向扩展解决scheme的制造商,如果你喜欢,你可以使用“自动分片机”。 ScaleBae分析你的数据和SQLstream,在数据库节点之间分割数据,并在运行时聚合 – 所以你不必! 它是免费下载。

不要误解我的意思,NoSQLs很棒,他们是新的,新的是更多的select和select永远是好的! 但selectNoSQL的价格,确保你可以支付…

你可以在这里看到更多关于MySQL,NoSQL的数据: http : //www.scalebase.com/extreme-scalability-with-mongodb-and-mysql-part-1-auto-sharding

希望有所帮助。

最好的select之一是去支持可伸缩性的MongoDB(NOSql dB)。存储大量的数据,只不过是sql数据中的行和表的文档forms的bigdata。这是更快的数据shradding.Uses replicasets以确保数据保证,维护多个服务器的主要数据库服务器为基础。 语言独立。 灵活使用