从MySQL5.5版本开始,默认使用的就是InnoDB存储引擎,它擅长处理事务,具有自动崩溃恢复的特性,使用非常广泛.。
InnoDB存储引擎架构主要由两部分组成,内存结构和磁盘结构。
InnoDB存储引擎的内存结构由4部分组成:
- Buffer Pool:缓冲池,作用就是用来缓存表数据和索引数据,减少磁盘IO操作,提升效率。
- Change Buffer:写缓冲区,是针对二级索引页(辅助索引)的更新优化措施。
- Log Buffer:日志缓冲区,用来缓存谢日磁盘上log文件(Redo、Undo)的数据,日志缓冲区的内容会定期的刷新到磁盘Log文件中,主要作用是:用来优化每次更新操作之后都要写入redo log产生的磁盘IO的。
- Adaptive Hash Index:自适应Hash索引。InnoDB不支持手动创建哈希索引的,但是InnoDB会进行自调优,如果判断建立自适应哈希索引能够提升查询效率,InnoDB就会在自己的内存中创建想换掉Hash索引。自适应值得是不需要人工手动干预,InnoDB会根据自己的需求去创建自适应Hash索引。