[玩转MySQL之七]InnoDB存储引擎架构简介
一、引言 在MySQL做完优化工作后,真正执行SQL语句的部件是存储引擎。在MySQL众多引擎之中,InnoDB是目前默认的存储引擎,也是使用最广泛的引擎。InnoDB是事务安全的MySQL存储引擎,支持ACID事务。其设计目标主要面向在线事务处理(OLTP)的应用。其特点是行锁设计、支持外键,并支持非锁定读,即默认读操作不会产生锁。InnoDB存储数据是基于磁盘存储的,且其记录是按照页的方式进行管理。那么将引出如下疑问: 当前的磁盘速度和CPU之间拥有一条巨大的鸿沟,InnoDB如何解决?。 数据库对数据进行操作(查询,修改,插入)时,数据在磁盘上的位置是随机的,将会更加影响操作数据的性能,InnoDB又是如何解决的? 针对问题1,非常有效的办法是引入缓存来解决,但是引入缓存后,会导致缓存数据和磁盘数据一致性和MySQL非正常死亡时缓存数据丢失的问题。 InnoDB有哪些重要特性? 二、InnoDB体系架构 如图所示,InnoDB存储引擎由内存池和一些后台线程组成,其各自主要的工作是: 内存池主要工作 维护所有进程/线程需要访问的多个内部数据结构 缓存磁盘上的数据,方便快速读取,同时...

