Mysql通过什么保证事务的四大特性

原子性(Atomicity):undo log日志:作用:提供回滚和MVCC(多版本并发控制)

当我们执行一条delete语句的时候,undo log日志就会插入一条相反的insert语句记录delete之前有什么记录,执行update的时候,undo log日志就会记录一条相反的记录update之前有什么数据

undo log销毁:

当执行insert的时候,事务提交后,可被立即删除

当执行update、delete的时候,事务提交后,不会立即删除,因为这些日志可能用于MVCC或快照读

undo log存储:采用段的方式进行管理和记录,存在rollback segement回滚段中,内部包含1024个undo log segement

一致性(Consistency):redo log + undo log

隔离性(Isolation):锁、MVCC

持久性(Durability):redo log日志,在进行脏页刷新时保证数据完整性

MVCC基本概念:

当前读:读取的是记录的最新版本,select ... lock in share mode(共享锁),select ... for update,update,insert,delete(排它锁)都是一种当前读

快照读:简单的select就是快照读,读取的事记录数据的可见版本,有可能是历史数据,不加锁,是非阻塞锁 

MVCC实现原理:

readView(读视图):快照读SQL执行时MVCC提取数据的依据,记录并维护系统当前活跃的事务(未提交的那些)id

包含了4个核心字段:

m_ids:当前活跃的事务id集合

min_trx_id:最小活跃事务id

max_trx_id:预分配事务id,当前最大事务id+1(因为事务id是自增的)

creator_trx_id:ReadView创建者的事务id

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值