【问题标题】:What are some arguments as to why NoSQL databases do not need ACID?关于为什么 NoSQL 数据库不需要 ACID 有哪些争论?
【发布时间】:2014-12-05 01:49:31
【问题描述】:

我正在尝试收集有关 NoSQL 数据库的一些信息,并且我非常有兴趣找到关于为什么 NoSQL 不需要 ACID 事务的论据。 stackoverflow 上似乎没有太多关于此的信息,所以我认为值得开始一个新问题。

【问题讨论】:

  • 问题不在于为什么数据库不需要事务。问题是为什么您的项目不需要事务。

标签: database nosql


【解决方案1】:

我会说您的 USE CASE 可能需要也可能不需要 ACID 事务,但您的技术选择要么支持 ACID,要么不支持。如果您需要超严格的 ACID,那么对于您的用例,NOSQL 可能不是一个好方法。但话又说回来,有不同的 ACID 定义,以及事务的定义。所以说 NOSQL 不需要 ACID 确实没有意义,但是说它通常不支持 ACID 是正确的,因为 NOSQL 旨在支持的一般用例不需要它。

HBase 对 ACID 的评价 - 基本上最后一个人在一行/键上获胜

http://hbase.apache.org/acid-semantics.html

关系数据库中的ACID指的是不同的事务隔离级别等。

这是一个非常广泛的问题,希望对您有所帮助。

【讨论】:

  • 感谢您的回复。您认为哪些用例最好没有 ACID?
  • 简而言之,重写重读,但更新和删除很少。另外,如果你的数据有稀疏字段,NoSQL 擅长存储这种类型的多结构化数据
【解决方案2】:

因为 NoSQL 数据库为了性能和可扩展性故意放弃了 ACID 语义。 ACID 是有代价的,如果你不需要它,你可以在没有它的情况下运行得更快。

【讨论】:

  • 好点...高速摄取...读取大部分优化是一般用例
猜你喜欢
  • 1970-01-01
  • 2012-02-21
  • 2011-08-12
  • 2018-07-22
  • 2023-03-08
  • 1970-01-01
  • 2011-04-18
  • 2012-04-18
  • 2011-01-13
相关资源
最近更新 更多