ACID数据库隔离级别

Posted ccxka

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACID数据库隔离级别相关的知识,希望对你有一定的参考价值。

ACID

  A(Atomicity):原子性,要么全部执行,要么都不执行

  C(consistency):一致性:

    特点:

      1、一个操作除法级联,这些必须成功,否则全部失败(原子性)

      2、所有节点同步更新

      3、串行事物

  I(Isolation):隔离性 ---> 乐观锁或悲观锁实现

  D(durablity):持久性 ---> 事物一旦提交,则该提交是永久的

 

脏读

  一个数据读取到了另一个没有提交的数据

 

幻读

  这个名字我觉得起的真形象-。-,也就是察觉不了新增删除,读两次,得到的数据条数不一样

  事物A在遍历的时候,B插入一条数据,然后A发现咋还有一个数据没读到,其实是B插进去的,删除也一样

  避免?

    采用范围锁RangeS RangeS_S模式,锁定检索范围为只读

 

不可重复读

  和幻读不一样,幻读是针对数据条数,不可重复读是针对数据的修改

  A第一次读取到数据,B做了修改,A第二次读取数据,发现数据不匹配

 

隔离级别:

  1、读未提交:没有提交的事物也可见

  2、提交读:大部分都是这个,只能看到提交的

  3、可重复读:避免脏读,但是不能避免幻读

  4、串行化:都可以避免,加了大量的锁,效率很低啦

以上是关于ACID数据库隔离级别的主要内容,如果未能解决你的问题,请参考以下文章

数据库ACID原则和事务隔离级别

ACID数据库隔离级别

数据库的ACID跟事务隔离级别

Mysql事务并发问题与隔离级别深入解析

事务的ACID以及事务的隔离级别

oracle学习笔记 事务ACID及隔离级别