Mysql InnoDB 事务简单理解

1. 事务基本特性: ACID

A 由undo 来实现的

I 由锁实现

D 由redo实现

C 由AID共同保证

2. undo 实现了 事务的回滚 以及 MVCC

事务的回滚: 记录下事务期间的所有Update/Delete/Insert操作的前后value,当需要rollback时会做一个相反的操作。

MVCC:undo恰好记录下了事务期间的快照信息,当Update/Delete/Insert占用某行记录需要被读取时,可以根据事务级别读取undo中的快照信息( read_committed模式下读取的是最新快照;Repeatable Read模式下读取的是事务开始点的快照)。


3. 锁 实现了 事务操作的隔离

Update/Insert/Delete/Select ...for Upadate 操作的同一行Record,会通过锁排序处理

Select与 Update/Delete 操作的同一行Record,会通过MVCC来实现互相不冲突。简单来说就是Select的时候发现某行处于加锁状态,会读取该行的undo信息读取当前事物级别匹配的快照。


4. redo 实现了事务的持久性

简单来说就是redo日志文件会保存下当前的所有操作,当出现系统崩溃,系统重启时会以当前redo日志文件中checkpoint为起点开始恢复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值