SQL (MySQL) vs NoSQL (CouchDB)

我正在设计一个高度可伸缩的应用程序,它必须存储大量数据。举个例子,它会存储很多关于用户的信息,还有很多他们的信息,评论等等。我以前一直使用 MySQL,但现在我想尝试一些新的东西,如 couchdb 或类似的,而不是 SQL。

有人对此有什么想法或建议吗?

132272 次浏览

这是最近 来自 Dare Obasanjo 的博客文章的一段话。

SQL 数据库就像是自动的 传输数据库和 NoSQL 数据库是 就像手动变速器 切换到 NoSQL,您将成为 负责了很多工作 系统自动处理 关系数据库系统类似 当你选择手动时会发生什么 自动变速器第二, NoSQL 允许你做得更多 系统外的表现 消除了很多诚信检查 关系数据库从 数据库层。同样,这是类似的 怎样才能获得更好的表现 从你的车里开出来 自动变速箱与自动变速箱的比较 变速器车辆。

然而最显著的相似之处是 就像我们大多数人一样 充分利用 手动变速器是因为 我们大部分的驾驶都是坐着的 在往返的交通中 工作,有一个类似的严酷的现实 因为大多数网站都不在谷歌或 Facebook 的规模,因此没有必要 对于一个 Bigtable 或卡珊德拉。

除此之外,我只能补充一点: 从至少有一些经验的 MySQL 切换到没有经验的 CouchDB,意味着您将不得不处理一系列全新的问题,并学习不同的概念和最佳实践。虽然就其本身而言,这非常棒(我在自己家里使用 MongoDB,并且非常喜欢它) ,但是在评估该项目的工作时,这将是一个需要计算的成本,并且会带来未知的风险,同时承诺未知的收益。很难判断你是否能按时完成这个项目,是否能达到你想要的质量,是否能取得成功,是否这个项目是基于你不了解的技术。

现在,如果您的团队中有一位 NoSQL 领域的专家,那么请务必仔细研究一下它。但是如果团队中没有任何专业知识,就不要为了一个新的商业项目而跳到 NoSQL 上。

更新 : 这里有两篇来自 SQL 阵营的有趣文章。:-)

I Can’t Wait for NoSQL to Die (原文不见了,这里有一个 收到)
与 NoSQL 的思维模式作斗争,尽管这不是一篇反 NoSQL 的文章
更新 : 这里有一篇关于 NoSQL 的有趣文章
理解 NoSQL

似乎今天唯一真正的解决方案是围绕着扩展或分片。所有现代数据库(NoSQL 和 NewSQL)都支持开箱即用的水平扩展,在数据库层,不需要应用程序使用分片代码或其他东西。

不幸的是,对于值得信赖的老 MySQL 来说,分片并不是“现成的”。ScaleBase(免责声明: 我在那里工作)是一个完整的扩展解决方案的制造商一个“自动分片机”,如果你喜欢。ScaleBae 分析您的数据和 SQL 流,在 DB 节点之间分割数据,并在运行时进行聚合——所以您不必这样做! 而且是免费下载的。

不要误会我,NoSQL 是伟大的,他们是新的,新的是更多的选择和选择总是好的! !但是选择 NoSQL 是有代价的,要确保你能付得起。

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

希望这有帮助。

最好的选择之一是使用支持可伸缩性的 MongoDB (NOSqldB)。与 sql 中的行和表不同,只以文档的形式存储大量数据。这样可以加快数据分片的速度。使用复制集确保数据保证维护以主数据库服务器为基础的多个服务器。语言独立。 灵活使用