• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

事物中的ACID四性

mysql 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

事务的四大属性ACID即事务的 原子性(Atomicity)、一致性(Consistency)、隔离性 (Isolation)、持久性(Durability).。 1,最容易困惑的是原子性和一致性,先谈这俩: 原子性:事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的

事务的四大属性ACID即事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).。

1,最容易困惑的是原子性和一致性,先谈这俩:
原子性:事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。

一致性: 事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。
有朋友会问,那我保证了原子性,不就可以保证一致了么?这里的关键区别在于,事务的操作边界定义。对于一直事务里有哪些操作,这个是自定义的,而一致性是针对业务逻辑本身而言的。比如你本文来源gaodai$ma#com搞$$代**码网$定义一个事务,里面的操作是A,B,C三步,系统原子性能保证的是这三步要么都执行,要么都不执行,不可拆分。但是有可能你这三部破坏了数据的一致性,比如你定义了从A账户划拨200块给B账户。如果你的事务里只包含从A账户扣款,而不包含B账户加钱。那么系统保证原子性后,能保证要么从A账户都扣款成功,要么都不成功,不会出现扣了一半款之类的异常情况。但是没办法保证B账户加钱了。所以A账户扣款,B账号加钱,这是一个连续的动作,业务逻辑上要保证一致性,所以必须把两个步骤放在一个事务里,这样才能保证一致性。
换而言之,原子性是系统能够提供的功能,而一致性是根据业务逻辑,有用户自定义事务的边界来保证的。两者缺一不可。

2,隔离性
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
3,持久性
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:事物中的ACID四性
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址