逻辑存储结构
架构
左侧是内存结构,右侧是磁盘结构
内存架构
缓冲池
更改缓冲区
自适应hash
日志缓冲区
磁盘结构
系统表空间&文件表空间
通用表空间&撤销表空间&临时表空间
双写缓冲区&重做日志
后台线程
事务原理
概述
原子性-undo log
持久性-redo log
一致性-undo log + redo log
隔离性-锁 + MVCC
redo log
redo log就是为了保证我们在进行脏页刷新发生错误时进行数据恢复用的,从而保证数据的持久性
undo log
在事务执行失败进行回滚时需要依赖于undo log进行回滚,在MVCC多版本并发控制时也需要用到undo log
MVCC
基本概念
实现原理-记录中的隐藏字段
实现原理-undo log
undo log日志
undo log版本链
实现原理-readview
readview
版本链数据访问规则
不同的隔离级别,生成ReadView的时机不同:
- READ COMMITTED:在事务中每一次执行快照读时生成ReadView
- REPEATABLE READ:仅在事务中第一次执行快照读时生成ReadView,后续复用该ReadView
RC隔离级别下,在事务中每一次执行快照读时生成ReadView
RR隔离级别下,仅在事务中第一次执行快照读时生成ReadView,后续复用该ReadView