Java面试宝典:MySQL InnoDB引擎底层解析
InnoDB的三大核心特性:
- 双写机制 (Doublewrite Buffer):确保数据页写入的可靠性,防止部分页写入(Partial Page Write)导致的数据损坏。
- 缓冲池 (Buffer Pool):核心的内存缓存区域,用于缓存数据页和索引页,极大减少磁盘I/O。
- 自适应哈希索引 (Adaptive Hash Index):InnoDB在内存中自动为频繁访问的索引页构建哈希索引,加速等值查询。
说明: 自适应哈希索引已在之前的索引课程中详细讲解,本节课将不再赘述。学习InnoDB不能仅关注其亮点特性,更需要体系化地理解其整体架构和工作原理。
InnoDB的内存结构和磁盘存储结构总结如下图所示:
初次接触此类结构图可能会感到复杂,因此我们将以问题驱动的方式逐步解析:
1.数据存储位置:当我们通过客户端发送SQL请求并获取结果时,表中的数据究竟存储在磁盘的什么位置?
2.数据存储格式:表中的数据以何种格式存储在磁盘上?
3.数据访问方式:InnoDB引擎