Java面向对象选择题4

AtCoder Beginner Contest 203(Sponsored by Panasonic) D.Pond(二分+二维前缀和)

  返回  

事务--隔离级别和读现象(言简意赅)

2021/7/21 20:15:13 浏览:

脏读:读到了未提交的无效数据在这里插入图片描述

不可重复读:更新前后的读取不同

在这里插入图片描述

幻读:插入前后的读取不同

在这里插入图片描述

隔离级别和读现象

读现象

  • 脏读:读到了未提交的无效数据
  • 不可重复读:更新前后的读取不同
  • 幻读:插入前后的读取不同

隔离级别

  • Read uncommitted (未提交读)

  • Read committed (已提交读)

  • Repeatable read (可重复读)

  • Serializable (可序列化)

  • 0

    这四种隔离级别采取不同的锁类型来实现,若读取的是同⼀个数据的话,就容易发⽣读现象。
    例如:
    脏读(Drity Read):某个事务已更新⼀份数据,另⼀个事务在此时读取了同⼀份数据,

    由于某些原 因,前⼀个RollBack了操作,则后⼀个事务所读取的数据就会是不正确的

    不可重复读(Non-repeatable read):在⼀个事务的两次查询之中数据不⼀致,

    这可能是两次查询过 程中间插⼊了⼀个事务更新的原有的数据。

    幻读(Phantom Read):在⼀个事务的两次查询中数据笔数不⼀致,

    例如有⼀个事务查询了⼏列(Row) 数据,⽽另⼀个事务却在此时插⼊了新的⼏列数据,

    先前的事务在接下来的查询中,就会发现有⼏ 列数据是它先前所没有的。

    在 MySQL 中,实现了这四种隔离级别,分别有可能产⽣问题如下所示:

    脏读:允许读取未提交的信息,原因:Read uncommitted,

    解决⽅案: Read committed(表级读 锁)

    不可重复读:读取过程中单个数据发⽣了变化,

    解决⽅案: Repeatable read (⾏级写锁)

    幻读:读取过程中数据条⽬发⽣了变化,

    解决⽅案: Serializable(表级写锁)

事务四大特性:

  • 原⼦性(atomicity,或称不可分割性) :事务不可分割

  • ⼀致性(consistency):事务前后状态一致。保持约束一致性和业务逻辑一致性。

  • 隔离性(isolation,⼜称独⽴性) :并发中各事务独立

  • 持久性(durability):更改永久性

    原子性是对单个事务的操作保障,一致性是多个事务对共享资源的竞争规范。

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号