美文网首页
浅谈ACID的I

浅谈ACID的I

作者: 陈阳001 | 来源:发表于2019-05-12 21:14 被阅读0次

隔离性:

事务的隔离性是指在并发环境中,并发的事务是相互隔离的,一个事务的执行不能被其它事务干扰。就是说,不同的事务并发操作相同的数据时,每个事务都有各自完整的数据空间,即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能相互干扰。

4个隔离级别:

未授权读

未授权读也被称为对未提交(Read Uncommitted),该隔离级别允许脏读,这个隔离级别最低。就是说,如果一个事务正在处理某一个数据,并对其进行了更新,但是还没完成事务,事务还没有提交;而此时,允许另一个事务也能访问到该数据。例子:事务A和事务B同时进行,事务A在整个执行阶段,会将数据项的值从1开始,做一系列的加法动作(比如说加1操作)直到变成10后再进行事务的提交,此时,事务B能够看到这个数据项在事务A操作中的所有中间值(如1变成2,2变成3等),而对这一系列的中间值的读取就是未授权读取。

授权读取

授权读取也被称为读已提交(Read Committed),它和未授权读的区别是授权读取只允许已经被提交的数据。例子:事务B无法看到这个数据项在事务A操作过程中的所有中间值,只能看到最终的10。另外,如果有一个事务C和事务A进行非常相似的操作,只是事务C是将数据项从10加到20,此时事务B也同样可以读到20,即授权读取允许不可重复读。

可重复读

可重复读取(Repeatable Read),简单地说,就是保证在事务处理过程中,多次读取同一个数据时,其值和事务开始的时候是一致的。因此该事务级别禁止了不可重复读取和脏读,但是有可能出现幻影数据。就是指同样的事务操作,由于别的事务增加了记录,致使两次看到的数量不一样。

串行化

串行化(Serializable)是最严格的事务隔离级别。要求所有事务都被串行执行,即事务只能一个接一个地进行处理,不能并发执行。

隔离级别对比

隔离级别解析.png
隔离级别 脏读 可重复读 幻读
未提交读取 存在 不可以 存在
提交读取 不存在 不可以 存在
可重复读取 不存在 可以 存在
串行化 不存在 可以 不存在

事务隔离级别越高,就越能保证数据的完整性和一致性,但是同时对并发性能的影响也越大。

相关文章

  • 浅谈ACID的I

    隔离性: 事务的隔离性是指在并发环境中,并发的事务是相互隔离的,一个事务的执行不能被其它事务干扰。就是说,不同的事...

  • ACID之I:事务隔离

    MyISAM 不支持事务, innoDB支持事务 多个事务可能存在问题 在多个事务共同操作时容易出现这样几个问题:...

  • 浅谈数据库的ACID

    什么是ACID? 在传统的关系型数据库(RDBMS)中,ACID是四个非常重要的性质。所谓的ACID性质,指的是:...

  • 浅谈 MySQL 的事务与 ACID

    最近把个人博客搭建好了,链接在这里:tobe的呓语,文章会先在博客和公众号更新~ 希望大家多多收藏啊 所谓事务(T...

  • 浅谈MySQL如何保证ACID

    MySQL如何保证一致性 数据库通过原子性(A)、隔离性(I)、持久性(D)来保证一致性(C)。其中一致性是目的,...

  • Mysql

    事务的特性 ACID A(Atomicity):原子性 C(Consistency):一致性 I(Isolatio...

  • 浅谈诗歌翻译之路 (Halted somewhere still

    浅谈诗歌翻译之路 (Halted somewhere still, I love you) ...

  • 在分布式数据库中CAP原理CAP+BASE

    一、传统的ACID分别是什么? A (Atomicity) 原子性 C (Consistency) 一致性 I (...

  • Mysql 事务

    事务的ACID A:atomic 原子性 C:consistency 一致性 I:Isolation 隔离性 D...

  • 分布式数据库中CAP+BASE

    传统的ACID分别是什么: A(Atomicity)原子性C(Consistency)一致性I(Isolation...

网友评论

      本文标题:浅谈ACID的I

      本文链接:https://www.haomeiwen.com/subject/fhehaqtx.html