InnoDB的三个关键特性
来源:互联网 发布:巨森网络 编辑:程序博客网 时间:2024/04/30 13:02
InnoDB存储引擎的三个关键特性:插入缓冲(insert buffer)、二次写(double write)、自适应哈希索引(adaptive hash index)。
插入缓冲(insert buffer):
对于非聚集索引的插入和更新,不是每一次直接插入索引页中,而是首先判断插入的非聚集索引页是否在缓冲池中,如果在,则直接插入,否则,先放入一个插入缓冲区中。好似欺骗数据库这个非聚集的索引已经插入到叶子节点了,然后再以一定的频率执行插入缓冲和非聚集索引页子节点的合并操作,这时通常能将多个插入合并到一个操作中,这就大大提高了对非聚集索引执行插入和修改操作的性能。
插入缓冲使用的条件:
1、索引是辅助索引;
2、索引不是唯一的;
两次写(double write)
两次写给innodb带来的是可靠性,主要用来解决部分写失败(partial page write)。doublewrite有两部分组成,一部分是内存中的doublewrite buffer,大小为2M,另外一部分就是物理磁盘上的共享表空间中连续的128个页,即两个区,大小同样为2M。当缓冲池的作业刷新时,并不直接写硬盘,而是通过memcpy函数将脏页先拷贝到内存中的doublewrite buffer,之后通过doublewrite buffer再分两次写,每次写入1M到共享表空间的物理磁盘上,然后马上调用fsync函数,同步磁盘。如下图所示
注:以下命令可以查看doublewrite的使用 情况。mysql> show global status like ‘innodb_dblwr%’;slave上可以通过设置skip_innodb_doublewrite参数关闭两次写功能来提高性能,但是master上一定要开启此功能,保证数据安全。
自适应哈希索引(adaptive hash index)
由于innodb不支持hash索引,但是在某些情况下hash索引的效率很高,于是出现了adaptive hash index功能,innodb存储引擎会监控对表上索引的查找,如果观察到建立hash索引可以提高性能的时候,则自动建立hash索引。可以通过 show engine innodb status\G来查看自适应哈西索引的使用情况。可以使用innodb_adaptive_hash_index来禁用和启用hash索引,默认开启。
- InnoDB的三个关键特性
- InnoDB的关键特性
- innodb 关键特性
- InnoDB关键特性
- InnoDB关键特性 Doublewrite
- InnoDB存储引擎关键特性
- Mysql InnoDB读书笔记--关键特性
- InnoDB关键特性之doublewrite
- InnoDB关键特性 Insert Buffer
- InnoDB存储引擎之InnoDB关键特性
- Innodb关键特性一 insert buffer
- InnoDB关键特性之double write
- InnoDB关键特性之自适应hash索引
- InnoDB关键特性之change buffer
- InnoDB关键特性之double write
- InnoDB关键特性之自适应hash索引
- InnoDB关键特性之double write
- InnoDB关键特性之Insert buffer
- PHP 下载功能源码
- 第13周 《C++语言基础》程序阅读——多态性与抽象类 (4)
- 第十三周阅读项目(1):虚函数
- 葛教你如何成为顶尖互联网产品经理
- 指环王经典,励志篇
- InnoDB的三个关键特性
- Codeforces Round #305 (Div. 2)-Mike and Fun(暴力求解连续1)
- 《C Primer Plus(第5版)中文版》第6章编程练习第14题
- poj 3177 边双连通分量(处理重边)
- Java--comparator接口与Comparable接口的区别
- SpringMVC 学习
- Python标准模块logging
- 贪心算法——算法总结(一)
- Linux下简单加密程序实现