2010-04-01 110 views
111

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

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

+3

Gah,CW。我希望能在这里得到一些真正的代表和街头信誉。 :-) – 2010-04-01 09:57:21

+1

你能解释一下你的数据集吗? – mikeal 2010-04-01 16:43:35

回答

171

以下是最近的一条报价blog post from Dare Obasanjo

SQL数据库就像自动的 传输和NoSQL数据库是手动传输的 。一旦您 切换到NoSQL,您将成为 负责 系统在 系统自动处理的许多工作的关系数据库系统。类似的 与当您通过自动变速器选择手动 时会发生什么。其次, NoSQL允许您通过 消除系统中更多 的性能,删除 数据库层中由关系数据库完成的大量完整性检查 。同样,这与 类似,您可以通过驾驶手动变速箱 与自动变速箱 获得更多性能 。

然而,最显着的相似性 ,只是我们大多数人一样不能真正 采取的 手动变速器车辆,因为 我们大部分的驾驶在交通坐在 的道路上带来的优势和从 工作,有一个类似的严酷的现实 在大多数网站不在谷歌或 Facebook的规模,因此没有需要 为Bigtable或Cassandra。

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

现在,如果您在团队中拥有NoSQL领域的专家,那么请务必仔细阅读。但是,如果团队没有任何专业知识,不要跳过NoSQL来开发新的商业项目。

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

I Can't Wait for NoSQL to Die(原文走了,这里有一个copy
Fighting The NoSQL Mindset, Though This Isn't an anti-NoSQL Piece
更新:那么这里是关于NoSQL的一个有趣的文章
Making Sense of NoSQL

+2

扩展SQL解决方案的过程是删除功能和关系的过程。所以我不认为这是一个完全公平的评估。另外,我不会像这样将NoSQL数据库组合在一起,例如Cassanda只关注缩放* up *,而CouchDB关注缩放api * down *并使其易于使用并尝试允许该api扩展至远尽可能地。 – mikeal 2010-04-01 16:42:00

+0

可能这是引用的链接? http://www.25hoursaday.com/weblog/2010/03/29/TheNoSQLDebateAutomaticVsManualTransmission.aspx – edosoft 2010-04-02 09:18:38

+0

啊,的确是的。我错过了他也把它作为公共博客文章。我会更新帖子。 – 2010-04-02 16:12:54

3

好像只有真正的解决方案都围绕着扩展或分片。所有现代数据库(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

希望这有助于。

0

最好的选择之一是去支持可扩展性的MongoDB(NOSql dB)。存储大量的数据,只有sql.txt中的行和表不同的文档形式。数据。使用复制数据库来确保数据保证能够维护多台以主数据库服务器为基础的服务器。语言独立。 灵活使用

+0

由于Couchbase,Cassandra,AeroSpike等支持您提及的功能,您应该将您的意见备份到“最佳”。 – 2016-12-17 20:08:11