【发布时间】:2010-09-16 20:04:59
【问题描述】:
几天前Hacker News 上有一篇文章到达首页,标题为
“不使用 Mongodb 的 2 种情况”,但我真的找不到没有了……
- 有人知道我在哪里可以找到上述文章吗?
- NoSQL 失败的情况有哪些?
【问题讨论】:
几天前Hacker News 上有一篇文章到达首页,标题为
“不使用 Mongodb 的 2 种情况”,但我真的找不到没有了……
【问题讨论】:
我们使用 MongoDB 来存储大量的分析数据,我们不在乎是否偶尔会在服务器崩溃中丢失某些内容。这些数据非常适合 MongoDB,如果我们为此使用 SQL 数据库,那将是一场噩梦。但对于银行交易,我们甚至不会考虑 MongoDB。 对于某些人来说,写锁可能是个问题。另一方面,MongoDB 支持简单的分片,比使用 SQL 更容易。分片允许我们水平扩展,这对我们的数据来说是一个巨大的优势。
【讨论】:
根据任何合理的定义,“NoSQL”应该在其范围内包括非 SQL RDBMS(因为关系模型不能满足与其他 NoSQL 模型相同的要求没有充分的理由)。如果您接受这一点,那么 NoSQL DBMS 的功能就没有限制。我们将不再需要 SQL - 永远!
可悲的是,NoSQL 思想领袖似乎有一个普遍的假设,即“NoSQL”必须意味着“非关系”。这是非常不幸的,因为如果忽略关系模型,那么 NoSQL 永远不可能在许多方面取代 SQL。 (我想当然地认为找到一个长期的、关系模型替代 SQL 实际上是一件好事 :)
【讨论】:
您通常不想在...时使用 NoSQL。
...不想使用 SQL! /哈迪哈哈
我见过的大多数 NoSQL 解决方案似乎都属于键值存储方法,并且不是关系型的。他们倾向于放弃 ACID 属性。
因此,当您评估数据库系统时,当您不需要需要 ACID,当您不想要关系代数时,当您需要 em> 需要 KV 存储,那么 NoSQL 方法是您的朋友。
还要注意,有各种各样的“NoSQL”系统,它们都在忙于研究略有不同的方法。
【讨论】:
NoSQL 暗示没有ACID?我个人已经在BerkeleyDB(不是关系型)之上构建了一个应用程序,它具有完整的事务支持。