数据库ACID以及事务的隔离

一、ACID

A:Atomicity 原子性

  我们把事务划分成原子一样,比方说a转钱给b,不能出现a扣了钱b没收到。所有环节中任意一个出错事务就必须回滚。

C:Consistency 一致性

  事务必须使得数据库从一个一致性状态改变到另一个一致性状态。比方说a和b之间互相转钱,而a和b的资产总额有100w那么多,

那么怎么转都不会说总和部署100w

I:Isolation 隔离性

  隔离性是当多个用户并发访问数据库时,比方说操作同一张表的时候,数据库为每一个用户开启的事务不能被其他的事务操作所干扰,多个并发事务之间要互相隔离。

D:Durability 持久性

  持久性是指一个事务一旦被提交了那么对数据库中数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失对事务的操作。

二、脏读、不可重复度和幻影读

对于上面的隔离性I,因为以下几种情况,可以提出几种隔离机制

脏读:

事务a读取了事务b中尚未提交的数据

比方说我给你转了100万,还没提交,这时候你看多了100万很开心,但是我发现转错人撤回去了,这个过程你就读到了没提交事务的数据

不可重复读取

对于在数据库中的某个数据,一个事务多次查询却返回了不同的数据,因为在查询的间隔,被另一个事务修改并提交了。

不可重复读取和脏读的区别是:前者读取了他人提交的数据,后者读取的是没提交的东西。

猜你喜欢

转载自www.cnblogs.com/daysn/p/11410625.html