首页 > 开发学院  >  数据库  > 

数据库

mysql InnoDB的特性

时间:2023-10-16 17:16:57阅读数:0

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存储引擎会检测该区域是否有其他脏页,如果有,则一起刷新。

相关文章