InnoDB 存储引擎结构
image.pngInnoDB重要组成
后台线程
- 负责刷盘的Master线程
- 负责读出写入磁盘的IO线程
- 负责回收undo log的Purge线程
- 为Master打辅助刷脏页的PageCleaner线程
内存块
- 缓存各种页的缓冲池,如包括插入缓冲缓存各种update insert操作然后合并多次IO
- Redo log缓冲池
- 额外缓冲池
Redo Log
固定大小,队列进出,真正刷盘前先写入Redo log,宕机可根据Redo log恢复
磁盘
真正存储数据的
InnoDB数据流
- 用户增删改(write)-> FREELIST里找空白页写入(若无LRULIST释放队尾空白页)-> 写入RedoLog返回写入成功->落库
- 用户查询(read)-> B+树搜索后查询LRULIST-> 找不到从磁盘加载->读出
网友评论