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