ACID理解

摘自:https://blog.csdn.net/dengjili/article/details/82468576

仅作笔记

 

原子性(Atomicity)
原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生
一致性(Consistency)
事务前后数据的完整性必须保持一致
隔离性(Isolation)
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务不能被其他事务的操作数据所干扰多个并发事务之间要相互隔离。
持久性(Durability
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响

 

 

 

这个过程包含两个步骤

 

A: 800 - 200 = 600
B: 200 + 200 = 400

 

 

 原子性表示,这两个步骤一起成功,或者一起失败,不能只发生其中一个动作

隔离性(Isolation)

针对多个用户同时操作,主要是排除其他事务对本次事务的影响

 

 

 

事务一)A向B转账200
事务二)C向B转账100

两个事务同时进行,其中一个事务读取另外一个事务还没有提交的数据,执行步骤如图所示,按照数字顺序执行

 

 

事务的隔离级别

脏读:

一个事务读取了另外一个事务未提交的数据

 

不可重复读:

一个事务内读取表中的某一行数据多次读取结果不同。(这个不一定是错误,只是某些场合不对)

页面统计查询值

 

 生成报表的时候,B有人转账进来300(B事务已经提交)

 

 

虚读(幻读)

是指在一个事务内读取到了别的事务插入的数据,导致前后读取数量总量不一致
(一般是行影响,如下图所示:多了一行)

 

posted @ 2021-04-27 17:45  琴湖copy王  阅读(63)  评论(0)    收藏  举报