我试图理解NO-SQL和RDBMS模型之间的区别,在web上我读到的任何地方,RDBMS都比NOSQL更好地支持事务。据我读的一个博客说,
在数据可靠性和执行事务的安全保证方面,SQL数据库仍然是更好的选择。
根据这个在SO上的回答
降低原子性可以缩短时间表(数据集)被锁定的时间。例子: MongoDB,CouchDB。
我明白原子性是什么意思,
假设我有一项与银行有关的交易,其中一项是信贷业务,一项是借记业务,要么两者都会成功,要么没有人会成功。
如果没有事务,这个特定的事务在非sql世界中是如何表现的?
发布于 2016-01-03 17:28:18
首先,NoSQL不仅仅是许多人(错误地)认为的一种模型,在这一点上有4种不同的模型:键值、文档、列和图,每个模型都是不同的。每个不同的模型都有很多供应商,每个供应商都为数据库提供了一组不同的特性。有一些支持事务和ACID属性的NoSQL数据库,还有一些不支持的其他NoSQL数据库。
要回答您的问题,如果您选择一个支持事务和ACID属性的NoSQL数据库,则它与SQL一样,数据库处理它。
但另一方面,如果您选择了一个不直接支持事务的数据库,那么响应性取决于应用程序本身。有一些策略被普遍接受来处理这个问题,比如一个2-阶段提交。
希望能帮上忙。
发布于 2016-01-17 10:03:25
我猜想,当你说NoSQL时,你指的是一个纯粹的键值NoSQL数据库。这不允许您原子地更改两个不同键的值。
在许多情况下,当每个事务都通过特定的键更改一个值时,这些数据库仍然很有用。
但是,在借记一个帐户并贷记另一个帐户的情况下,您应该使用另一个支持“全部或无”的SQL或NoSQL数据库进行至少两个操作。
因此,NoSQL的意思是没有SQL,但没有事务。
发布于 2021-09-26 12:07:30
现在的NoSQL数据库支持多种意义上的事务,如单共享酸、多共享酸、单区域、多区域.有一些开放源码和一些适当的数据库。
例如-
Azure Cosmos DB -单键酸(强一致性)
Mongo DB -单一共享酸
基础数据库-多共享酸-单一区域
TiKV -多共享酸-单区
亚马逊迪纳摩数据库-多共享酸-单一区域
YugaByte DB -多共享酸-多区域
动物群DB -多共享酸-多区域
根据您的要求,您可以选择其中之一。
https://stackoverflow.com/questions/34579287
复制相似问题