一起来分析MySQL事务工作流程原理

来源:这里教程网 时间:2026-02-28 15:30:51 作者:

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了事务工作流程原理的相关问题,包括了事务的原子性是通过undo log来实现的、事务的持久性是通过redo log来实现的等等内容,下面一起来看一下,希望对大家有帮助。

一起来分析MySQL事务工作流程原理

推荐学习:mysql视频教程

事务的原子性是通过 undo log 来实现的 事务的持久性是通过 redo log 来实现的 事务的隔离性是通过 (读写锁+MVCC)来实现的 而事务的终极大 boss 一致性是通过原子性,持久性,隔离性来实现的!!!

1、redo log 实现持久性

问题1: 为什么需要redo log?

问题2:redo log如何保证事务的持久性?

问题3:重写日志的流程?

问题4:数据写入后的最终落盘,是从 redo log 更新过来的还是从 buffer pool 更新过来的呢?

问题5:redo log buffer 是什么?是先修改内存,还是先写 redo log 文件?

问题6:redo log顺序写入磁盘?

2、bin log

为什么会有两份日志呢?

其中将 redo log 的写入拆成了两个步骤:prepare 和 commit,这就是两阶段提交(2PC)

问题1: 两阶段提交原理?

问题2:为什么必须有“两阶段提交”呢?

3、undo log 实现原子性

undo log有两个作用:提供回滚和多版本控制(MVCC)

4、MVCC实现隔离性

MVCC在mysql中的实现依赖的是undo log与read view

undo log :undo log 中记录某行数据的多个版本的数据。 read view :用来判断当前版本数据的可见性

5、MySQL 锁技术

 总结: 通过读写锁,可以做到读读可以并行,但是不能做到写读,写写并行 事务的隔离性就是根据读写锁来实现的!!!

推荐学习:mysql视频教程

相关推荐