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

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

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

在这里插入图片描述

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

在这里插入图片描述

隔离级别和读现象

读现象

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

隔离级别

  • 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):更改永久性

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值