1.redolog、binlog 持久化日志
1.redolog 重做日志:
1.Innodb 独有
2.作为内存和磁盘的缓冲,批量写入磁盘
3.物理日志,记录”在某数据页上做了什么修改”
4.循环写,空间固定会用完
记录已成功提交的transaction的,用来恢复数据,保障事务的 Durability
2.binlog 归档日志:
1.server层所有
2.逻辑日志:记录语句的原始逻辑,如”给ID=2行C字段值添加1”
3.追加写,满了开启下一个
3.方案 [二阶段提交] 看下方流程图
先记录redo log,且状态为prepare
然后记录binlog
最后再把redo log状态改为 commit
其实这个就是两阶段提交,保证两份日志逻辑的一致性
2.一条 UPDATE SQL 执行过程
update t_students set fname = 'tom' where fid = 1001;
3.undo log 回滚日志 – Atomic 原子性日志
undolog: 记录数据被修改前的信息,记录数据的逻辑变化,rollback用
redolog: ————–后——
参考:
文档信息
- 本文作者:jiushun.cheng
- 本文链接:https://minipa.github.io/2017/07/25/mysql-redo-undo/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)