2.1 InnoDB存储引擎概述
InnoDB从MySQL5.5版本开始是默认的表存储引擎,是第一个完整支持ACID事务的MySQL存储引擎
特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读,同时被设计用来最有效利用以及使用内存的CPU
2.2 InnoDB存储引擎的版本
InnoDB存储引擎包含于所有MySQL数据库的二进制发行版本中
从MySQL5.1版本时,MySQL数据库允许存储引擎开发商以动态方式加载引擎,所以在5.1版本中,可以支持两个版本的InnoDB:一个是静态编译的InnoDB版本可视为老版本的InnodDB;另一个是动态加载的InnoDB版本(官方称为Innodb plugin,InnoDB 1.0.x版本)
2.3 InnoDB体系架构
InnoDB的架构由内存池和后台线程构成
InnoDB存储引擎有多个内存块,这些内存块组成了一个大的内存池负责如下工作:
- 维护所有进程/线程需要访问的多个内部数据结构
- 缓存磁盘上的数据,方便快速读取,同时在对磁盘文件的数据修改之前在这里缓存
- 重做日志缓冲
- ....
后台线程的主要作用是负责刷新内存池中的数据,保证缓存池中的内存缓存的是最新的数据,此外将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常情况下InnoDB能恢复到正常运行状态