码迷,mamicode.com
首页 > 其他好文 > 详细

事务的特性

时间:2020-10-18 10:13:06      阅读:21      评论:0      收藏:0      [点我收藏+]

标签:失败   comm   提交数据   enc   session   必须   之间   strong   刷新   

事务必须具备原子性(Atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)四个属性,简称ACID属性。

  • 原子性(Atomicity)
    事务是一个完整的操作。事务的各部分操作是不可分的,即要么都执行,要么都不执行。
    例:如同银行的转账一样,A用户给B用户转账100元,A账户里扣除100和B账户增加100必须都成功,或者都失败。

  • 一致性(consistency)
    一个查询的结果必须与数据库开始查询时的状态一致,即读不等写、写不等读。
    例:一个查询从9:00开始执行,9:05数据被更改,9:10查询返回结果,该查询返回的结果依旧是9:00时数据库的数据,并不会返回9:05更改后的数据。

  • 隔离性(isolation)
    对于其它会话来说,未完成的(即未提交的)事务不可见。
    例:事务与事务之间互相隔离,存A和B在2个session,sessionA查询,sessionB更新,在sessionB更新尚未commit之前,session所查询的依然是commit之前的。即sessionB在9:00更新数据,sessionA在9:05查询数据,sessionB在9:10后commit,此时sessionA查询的数据依然是更新之前的数据,而sessionB在9:00之后查询会返回更新后的数据,sessionA在9:10sessionB进行commit之后查询会返回更新后的数据。

  • 持久性(durability)
    事务一旦提交完成,数据库就不可以丢失这个结果,数据库通过日志能够保持数据的持久性。
    例:事务提交后不可逆,提交数据是由内存刷新到磁盘上,这个过程的快慢和性能有关。在oracle中,主要拷‘rudo‘日志,先记录日志,再写入磁盘。

事务的特性

标签:失败   comm   提交数据   enc   session   必须   之间   strong   刷新   

原文地址:https://www.cnblogs.com/hybh/p/13832785.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!