MySQL的SQL执行过程
大约 1 分钟
MySQL的SQL执行过程
这是MySQL架构组件执行流程, 最后交给存储引擎执行SQL;
InnoDB存储引擎执行过程
这是InnoDB的写入操作流程
其中 redo log 时 InnoDB 特有的组件
binlog 时 MySQL 本身的组件
redo log 的 作用
实现持久性和一致性
由于数据的更新操作都是在内存发生的, 那么如果断电后, 如何保证内存的数据和磁盘的数据一致性, 那么redo log 的作用就是用来保证磁盘和内存数据的一致性;
假设数据在提交事务后, redo log 只存在内存, 还没有落入磁盘中, 这个时候发生了断电, 磁盘的数据是落后于内存的数据的, 那么断电恢复后, InnoDB会从redo log 中恢复BufferPool的环境, 这个时候再将差异的数据写入磁盘中, 保证了持久性和一致性