InnoDB存储引擎概述
InnoDB是事务安全的MySQL存储引擎,是OLTP应用的首选的存储引擎,一个新的OLTP项目需要快速的进行数据处理和快速对数据处理的结果进行返回,在这样的应用中我们往往需要保证操作的完成性,InnoDB引擎是很好的选择。
InnoDB体系架构
下图为InnoDb的体系架构,InnoDB存储引擎有多个内存块,这些内存块组成了一个容量不小的内存池,该内存池的作用如下:
1、维护所有进程、线程需要访问的内部数据结构。
2、缓存磁盘上的数据方便快速读取,在对磁盘数据修改之前在这里进行缓存。
3、重做日志缓冲。
后台线程的主要作用有三个:
1、刷新内存池中的数据,保证缓冲池中的内存的是最近的数据。
2、将已修改缓存中的数据内容刷新到磁盘文件。
3、保证在数据库发生异常的情况下InnoDB可以恢复到正常的运行状态。
后台进程
InnoDB存储引擎是多线程模型,后台中有多个不同的后台线程,处理不同的任务
Master Thread
主线程是一个非常核心的后台线程,主要负责:
1、将缓冲池的数据异步刷新到磁盘,保证数据的一致性
2、脏页的刷新
3、合并插入缓冲
4、UNDO页的回收
IO Thread
什么是AIO(Async IO)?