InnoDB存储引擎
InnoDB存储引擎
FANSEAInnoDB存储引擎
InnoDB架构
- 内存结构
Buffer Pool 缓冲池
Change Buffer 修改缓冲
Adaptive Hash Index 自适应哈希索引
Log Buffer 日志缓冲 - 磁盘结构
系统表空间(重要)
独立表空间(重要)
通用表空间
临时表空间
缓冲池 Buffer Pool
- 缓冲池 Buffer Pool 用于加速数据的访问和修改。
- 默认大小 128 M
- 缓存数据到内存,最大限度地减少磁盘 IO,加速 热点数据 的读和写
- 使用 LRU 算法(最近最久未使用)淘汰非热点数据页
- LRU:根据页数据的历史访问来淘汰数据,如果数据最近被访问过,那么将来访问的几率也更高,优先淘汰最近没有被访问到的数据
LRU算法:
对于 Buffer Pool 中数据的「查询」,InnoDB 直接读取返回;
对于 Buffer Pool 中数据的「修改」,InnoDB 直接在 Buffer Pool 中修改,并将修改写入 redo Log 中,当数据页被 LRU 算法淘汰时写入磁盘,若持久化前系统崩溃,则在重启后使用 redo Log 进行恢复