面试数据库篇(mysql)- 10事务中的隔离性是如何保证

本文详细介绍了MySQL中MVCC(多版本并发控制)的实现原理,包括记录中的隐藏字段、undo log和readView。MVCC通过维护数据的不同版本,确保读写操作的并发性。ReadView是快照读的依据,根据隔离级别(RC或RR)决定其生成时机。事务的隔离性由锁和MVCC共同保证,undo log用于记录回滚信息,形成版本链,readView则用于确定事务应访问的数据版本。
  • 锁:排他锁(如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁
  • mvcc : 多版本并发控制

MVCC

        全称 Multi-Version Concurrency Control,多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突 MVCC的具体实现,主要依赖于数据库记录中的隐式字段、undo log日志、readView。

MVCC-实现原理

1.记录中的隐藏字段

2.undo log

回滚日志,在insert、update、delete的时候产生的便于数据回滚的日志。

当insert的时候,产生的undo log日志只在回滚时需要,在事务提交后,可被立即删除。

而update、delete的时候,产生的undo log日志不仅在回滚时需要,mvcc版本访问也需要,不会立即被删除。

3.undo log版本链

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卡搜偶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值