读提交和可重复读的底层原理?事务的隔离级别底层实现?

  • 读提交和可重复读的底层原理?事务的隔离级别底层实现?
    • 读提交和可重复是通过MVCC实现,串行化是通过锁实现
    • MVCC
    • 补充知识
      • 所谓的一致性读视图,在可重复读隔离级别下,是事务开启之后,第一个开始读语句开始执行所创建的快照(包含所有已提交的更改/数据),后续事务所有的读数据均从该时刻的快照中读取,而读提交隔离级别下是每次读的时候都会生成一致性读视图
      • 一般没有显示开启事务【这里autocommit=1】,默认是执行 begin/start transaction,这种方式启动事务,一致性读视图是在执行第一个读语句时创建的
      • 如果使用 start transaction with consistent snapshot,会立刻创建一致性读视图
      • RC read commit 读提交 RR repeatable read 可重复读
      • MVCC multi-version concurency control 多版本并发控制 ,每行记录在更新时会记录一行回滚操作在回滚日志 undo log中
    • 原理:为每个事务构造一个数组,用于保存当前的活跃事务(已开启未提交),视图数组里最小的事务Id为低水位,最大的事务Id+1为高水位,这个视图数组就是一致性读视图,数据版本的可见性基于row transaction id 和该数组实现,视图数组把事务分为 已提交事务、未提交事务、未开始事务三部分,其中未提交分为两部分 1、row trans id 在数组中 ,表示该版本事务是由还没提交的事务生成的 不可见状态 (此时视图已生成,否则会造成脏读)2、row trans id 不在数组中,该版本事务已提交) 可见
    • 判断数据是否可见<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_40396568

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值