mysql InnoDB的特性
1、插入缓存,提升插入性能。
insertbuffer是insertbuffer的增强版,insertbuffer只对插入有效,而changebuffer对insert/update/delete有效。插入缓存只对非唯一的索引和辅助索引有效。每次插入都不是写在索引页上,而是先判断插入的非聚集索引页是否在缓存中。如果是,直接插入。如果不存在,插入insertbuffer,按一定频率合并,写回磁盘。
2、二次写,保障InnoDB存储引擎操作数据页的可靠性。
Double write分为两部分,一部分是内存中的double write buffer,大小为2MB,另一部分是物理磁盘上共享表空间中连续的128个数据页,即两个区域的大小(同样是2MB)。
3、自适应hash索引,hash是等值查询。
InnoDB存储引擎会监控表上每个索引页的查询。如果观察到建立hash索引会带来速度提升,那么建立相应的索引就叫自适应哈希索引。
4、异步IO,提高磁盘的操作性能。
目前的数据库系统一般采用异步IO来处理磁盘操作,InnoDB存储引擎也是如此,AIO的优点是减少了SQL查询所需的时间。
5、刷新邻接页
在刷新脏页时,InnoDB存储引擎会检测该区域是否有其他脏页,如果有,则一起刷新。
以上就是mysql InnoDB的特性,希望对大家有所帮助。