mysq - 事务(全)l

1. 四大特性

1. (基础)原子性,事务不可分割,要么全部成功,要么全部失败
2. (约束条件)一致性,也可以说成合法性,事务要符合逻辑,数据库限制,比如余额不能为负数,A给B转账,A+B的总额始终相等
3. (手段)隔离性
4. (目的)永久性

2. 隔离级别

1. mysql默认隔离级别可重复读,其他数据级别为读已提交
理解参考:https://blog.csdn.net/weixin_41814871/article/details/124996364

 3. 事务日志

1. 事务的隔离性由锁机制实现
2. redo与undo日志都是存储引擎级别的日志
3. redo log: cpu中的数据与磁盘中的数据之间加一个中间文件(redo log),这个文件用于存储本事务做了哪些操作,然后再定时更新到磁盘。cpu到redo log的速度是很快的。
4. undo log: 回滚数据,保证数据回滚到修改之前的状态
5. redo 保证事务的持久性,undo保证事务的原子性

 4. 可重复读实现机制

MVCC版本控制
一个事务中,当只有第一次执行select时,会生成一个ReadView,它决定了查找记录的版本,以后的select都根据该版本来操作

 5. MVCC(多版本控制)实现机制

1. 三个因素
1. 隐藏字段:a.事务id; b.指针对应修改前的信息
2. undo log版本链
3. readview规则(读已提交,每次查询都会生成一个readview;可重复读,只有第一次查询的时候生成readview)

 

 

posted @   10132714  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示