SQL(MySQL)与NoSQL(CouchDB)[关闭]


126

我正在设计一个高度可扩展的应用程序,该应用程序必须存储大量数据。仅举例来说,它将存储大量有关用户的信息,然后存储诸如消息,注释等之类的东西。我以前一直使用MySQL,但是现在我被迫尝试一些新的东西,例如,couchdb或类似的非SQL的东西。

有人对此有任何想法或指导吗?


3
加,CW。我希望在这里得到一些真正的代表和街头声誉。:-)
Franci Penov

1
您能否进一步解释一下您的数据集?
mikeal

4
我希望这不必关闭。这些问题很重要,但由于某些原因,它们不属于SO。
尼尔·乔杜里

Answers:


191

这是Dare Obasanjo最近的博客文章中的引用。

SQL数据库就像自动传输,而NoSQL数据库就像手动传输。切换到NoSQL后,您将负责系统在关系数据库系统中自动执行的许多工作。与您选择手动变速箱而不是自动变速箱时发生的情况类似。其次,NoSQL通过消除数据库层中关系数据库进行的大量完整性检查,使您可以从系统中获得更多性能。同样,这类似于通过驾驶手动变速箱与自动变速箱车辆来提高汽车的性能。

然而,最显着的相似之处在于,就像我们大多数人无法真正利用手动挡汽车的好处一样,因为我们的大部分驾驶行为都在上下班途中坐在交通中,因为大多数网站都没有Google或Facebook的规模,因此不需要Bigtable或Cassandra。

我只能添加从至少有经验的MySQL到没有经验的CouchDB的转换,这意味着您将不得不处理一系列全新的问题并学习不同的概念和最佳实践。虽然这本身很不错(我经常在MongoDB上玩,并且非常喜欢它),但是在估算该项目的工作量时,这是您需要计算的成本,带来了未知的风险,同时也带来了未知的收益。如果它基于您不知道的技术,将很难判断您是否能够按时完成项目并获得想要/需要的质量。

现在,如果您的团队中有NoSQL领域的专家,那么请务必仔细看一下。但是,如果没有团队的任何专业知识,请不要选择NoSQL进行新的商业项目。

更新:只是为了在开火时扔些汽油,这是SQL营人们的两篇有趣的文章。:-)

我等不及NoSQL死了(原始文章不见了,这是副本
与NoSQL心态作斗争,尽管这不是反NoSQL的
最新更新:好吧,这是一篇有关NoSQL的有趣文章,使 NoSQL
更具意义


2
扩展SQL解决方案的过程就是删除功能和关系的过程。因此,我认为这不是一个完全公平的评估。另外,我不会像这样将NoSQL数据库分组在一起,例如Cassanda仅专注于扩展而CouchDB则关注将api 缩减并使其易于使用,并尝试允许该api尽可能扩大。
mikeal'4

这可能是报价的链接吗?25hoursaday.com/weblog/2010/03/29/...
edosoft

啊,是的。我想念他也将其发布为公共博客。我将更新帖子。
Franci Penov

1
感谢您的帖子!链接“我不能等待NoSQL死亡”对我不起作用,您可能需要检查一下。
kbpontius

“您已经用有限枚举的限制和缺陷列表来换取了较新的,鲜为人知的限制和缺陷列表”-
等不及

3

如今似乎只有真正的解决方案围绕着扩展或分片展开。所有现代数据库(NoSQL和NewSQL)都支持在数据库层开箱即用地进行横向扩展,而无需应用程序具有分片代码或其他内容。

不幸的是,对于值得信赖的古老MySQL,没有“开箱即用”提供分片。ScaleBase(免责声明:我在那儿工作)是一个完整的横向扩展解决方案的制造商,如果您愿意,可以使用“自动分片机”。ScaleBae可以分析您的数据和SQL流,在数据库节点之间拆分数据,并在运行时进行聚合-因此您不必这样做!它是免费下载。

不要误会我的意思,NoSQL很棒,它们是新的,新的是更多选择,选择永远都是好的!但是选择NoSQL需要付出一定的代价,请确保您能付得起...

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

希望能有所帮助。


0

最好的选择之一是选择支持可伸缩性的MongoDB(NOSql dB)。除了以SQL形式的行和表之外的文档形式存储大数据外,仅存储大数据,这是数据分片后的更快处理方法。确保数据保证维护以主数据库服务器为基础的多台服务器。语言无关。使用灵活


因为Couchbase,Cassandra,AeroSpike等以及支持您提到的功能的所有数据库,所以您应该将您的意见备份为“最佳”。
OneCricketeer 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.