一、简述
InnoDB,是MySQL的数据库引擎之一,现为MySQL的默认存储引擎,为MySQL AB发布binary的标准之一。InnoDB由Innobase Oy公司所开发,2006年五月时由甲骨文公司并购。与传统的ISAM与MyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事务(Transaction)功能。
二、三大特性
2.1 自适应哈希索引
自适应哈希索引(Adaptive Hash Index,AHI)
innodb有一个机制,可以监控索引的搜索,如果innodb注意到查询可以通过建立哈希索引得到优化,那么就会自动完成这件事。
2.2 双写缓存
双写缓冲区(DoubleWrite Buffer)
就是保证写入的安全性,防止在MySQL实例发生宕机时,innodb发生数据页部分页写的问题。数据库实例崩溃,我们可以通过 redo log进行恢复,不会由任何问题。但redo log文件记录 的是页的物理操作,如果页都损坏了,是无法进行任何恢复操作的。所以我们需要一个页的副本,如果实例宕机了,可以通过副本把原来的页还原出来,再通过redo log进行恢复,重做。这就是double write的作用。
2.3缓存池
缓存池( BUFFER POOL )
Buffer Pool中存储了索引页、数据页、undo页、插入缓冲(insert buffer)、修改缓冲(change buffer)、自适应哈希索引(adaptive hash index)、InnoDB存储的锁信息(lock info)、数据字典信息(data dictionary)等信息。