何时不应使用NoSQL?

14

几天前,Hacker News 上有一篇文章登上了首页,标题大概是"两种情况下不应使用Mongodb",但我现在找不到它了...

  1. 有人知道我描述的那篇文章在哪里可以找到吗?
  2. NoSQL 会在什么情况下失败?

还可以参考https://dev59.com/wG855IYBdhLWcg3wQx5L#4448292 - clyfe
3个回答

7
我们使用MongoDB来存储大量分析数据,即使在服务器崩溃时有些数据偶尔会丢失,我们也不太关心。这些数据非常适合MongoDB,如果我们要使用SQL数据库,那将是一场噩梦。但对于银行交易,我们甚至不会考虑MongoDB。 写入锁可能会成为某些人的问题。另一方面,MongoDB支持易于分片,比使用SQL容易得多。分片使我们能够水平扩展,这对我们的数据来说是一个巨大的优势。
来源:http://news.ycombinator.com/item?id=1691748

2
不错的发现,但实际文章在这里:http://ethangunderson.com/blog/two-reasons-to-not-use-mongodb/。 - Mark Byers
1
说实话,楼主确实在问题中提到了这点。 :) - user359040

0

按照任何合理的定义,“NoSQL”应该包括非SQL关系型数据库在其范围内(因为关系模型可以解决与其他NoSQL模型相同的需求,没有充分的理由排除它)。如果您接受这一点,那么NoSQL DBMSs的功能将是无限的。我们将永远不再需要SQL!

可悲的是,NoSQL思想领袖中似乎存在一种普遍的假设,即“NoSQL”必须意味着“非关系型”。这是非常不幸的,因为如果忽略了关系模型,NoSQL很可能永远无法替代SQL用于许多目的。(我认为找到一个长期的、关系型的SQL替代方案实际上是一件好事:)


典型的针对SQL的仇恨言论 - Simple Fellow
我并不讨厌SQL,但我会尝试保持开放的心态,寻找更好的替代方案。毕竟,SQL是一门已经存在30年的语言和范式,有一些非常不便利的缺陷。 - nvogel
你能否添加一些你喜欢的关系型NoSQL数据库的链接?我找到了一些,但没有什么特别吸引人的,也许你可以指点我更有趣的东西。 - maaartinus

0

通常情况下,当你不想使用SQL时,你就不想使用NoSQL!

我看到的大多数NoSQL解决方案似乎都在采用键值存储方法,并且不是关系型的。它们往往放弃了ACID属性。

因此,当你评估数据库系统时,当你不需要ACID、不想要关系代数、需要KV存储时,NoSQL方法就是你的朋友。

还要注意,有各种各样的“NoSQL”系统,它们都在忙着开发略微不同的方法。


4
你认为为什么NoSQL意味着没有ACID?我个人曾在非关系型数据库BerkeleyDB上构建了一个拥有完整事务支持的应用程序。 - Quassnoi
1
@Quassnoi:因为缺乏ACID是NoSQL常见的趋势之一。 - Paul Nathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接