从MySQL 5.5版本开始,InnoDB是默认的表存储引擎,特点是支持事务、支持数据行锁、支持多版本并发MVCC、支持外键。InnoDB存储引擎的体系结构如图2-1所示,包括内存池、后台线程和底层的数据文件。
图2-1
InnoDB存储引擎有各种缓冲池(Buffer Pool),这些缓冲块组成了一个大的InnoDB存储引擎内存池,主要负责的工作是:维护所有进程/线程需要访问的多个内部数据结构;缓存磁盘上的数据,方便快速读取,同时在对磁盘文件修改之前进行缓存;重做日志缓存等。
后台线程的主要作用是:负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最新数据;将已修改数据文件刷新到磁盘文件;保证数据库发生异常时InnoDB能恢复到正常运行的状态。