【问题标题】:When NOT to use NoSQL?什么时候不使用 NoSQL?
【发布时间】:2010-09-16 20:04:59
【问题描述】:

几天前Hacker News 上有一篇文章到达首页,标题为
“不使用 Mongodb 的 2 种情况”,但我真的找不到没有了……

  1. 有人知道我在哪里可以找到上述文章吗?
  2. NoSQL 失败的情况有哪些?

【问题讨论】:

标签: mongodb database nosql


【解决方案1】:

我们使用 MongoDB 来存储大量的分析数据,我们不在乎是否偶尔会在服务器崩溃中丢失某些内容。这些数据非常适合 MongoDB,如果我们为此使用 SQL 数据库,那将是一场噩梦。但对于银行交易,我们甚至不会考虑 MongoDB。 对于某些人来说,写锁可能是个问题。另一方面,MongoDB 支持简单的分片,比使用 SQL 更容易。分片允许我们水平扩展,这对我们的数据来说是一个巨大的优势。

  1. http://news.ycombinator.com/item?id=1691748

【讨论】:

【解决方案2】:

根据任何合理的定义,“NoSQL”应该在其范围内包括非 SQL RDBMS(因为关系模型不能满足与其他 NoSQL 模型相同的要求没有充分的理由)。如果您接受这一点,那么 NoSQL DBMS 的功能就没有限制。我们将不再需要 SQL - 永远!

可悲的是,NoSQL 思想领袖似乎有一个普遍的假设,即“NoSQL”必须意味着“非关系”。这是非常不幸的,因为如果忽略关系模型,那么 NoSQL 永远不可能在许多方面取代 SQL。 (我想当然地认为找到一个长期的、关系模型替代 SQL 实际上是一件好事 :)

【讨论】:

  • 典型的针对 SQL 的仇恨散布
  • 我并不讨厌 SQL,但我确实尝试对更好的替代方案持开放态度,毕竟这是一种具有 30 年历史的语言和范式,存在一些非常不方便的缺陷。
  • 你能添加一些链接到你喜欢的关系 NoSQL 数据库吗?我找到了一些,但没有什么是真正令人兴奋的,但也许你可以给我指点更有趣的东西。
【解决方案3】:

您通常不想在...时使用 NoSQL。

...不想使用 SQL! /哈迪哈哈

我见过的大多数 NoSQL 解决方案似乎都属于键值存储方法,并且不是关系型的。他们倾向于放弃 ACID 属性。

因此,当您评估数据库系统时,当您不需要需要 ACID,当您想要关系代数时,当您需要 em> 需要 KV 存储,那么 NoSQL 方法是您的朋友。

还要注意,有各种各样的“NoSQL”系统,它们都在忙于研究略有不同的方法。

【讨论】:

  • 为什么你认为NoSQL 暗示没有ACID?我个人已经在BerkeleyDB(不是关系型)之上构建了一个应用程序,它具有完整的事务支持。
  • @Quassnoi:因为没有 ACID 是 NoSQL 的常见趋势之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 2020-01-09
相关资源
最近更新 更多