【发布时间】:2014-12-05 01:49:31
【问题描述】:
我正在尝试收集有关 NoSQL 数据库的一些信息,并且我非常有兴趣找到关于为什么 NoSQL 不需要 ACID 事务的论据。 stackoverflow 上似乎没有太多关于此的信息,所以我认为值得开始一个新问题。
【问题讨论】:
-
问题不在于为什么数据库不需要事务。问题是为什么您的项目不需要事务。
我正在尝试收集有关 NoSQL 数据库的一些信息,并且我非常有兴趣找到关于为什么 NoSQL 不需要 ACID 事务的论据。 stackoverflow 上似乎没有太多关于此的信息,所以我认为值得开始一个新问题。
【问题讨论】:
我会说您的 USE CASE 可能需要也可能不需要 ACID 事务,但您的技术选择要么支持 ACID,要么不支持。如果您需要超严格的 ACID,那么对于您的用例,NOSQL 可能不是一个好方法。但话又说回来,有不同的 ACID 定义,以及事务的定义。所以说 NOSQL 不需要 ACID 确实没有意义,但是说它通常不支持 ACID 是正确的,因为 NOSQL 旨在支持的一般用例不需要它。
HBase 对 ACID 的评价 - 基本上最后一个人在一行/键上获胜
http://hbase.apache.org/acid-semantics.html
关系数据库中的ACID指的是不同的事务隔离级别等。
这是一个非常广泛的问题,希望对您有所帮助。
【讨论】:
因为 NoSQL 数据库为了性能和可扩展性故意放弃了 ACID 语义。 ACID 是有代价的,如果你不需要它,你可以在没有它的情况下运行得更快。
【讨论】: