Insert Buffer:主要用于提高非聚集索引的插入和更新性能

  • 聚集索引和非聚集索引

聚集索引就是数据索引按照索引排序,且内容也是顺序存储(等价于汉语字典按照拼音索引排序)

非聚集索引索引项按照顺序排列,但是索引对应的内容并不相邻,是随机存储的(等价于汉语字典按照笔画部首排序)

InnoDB中行记录是按照聚集索引维度来顺序存储的

一个表只有一个聚集索引,一般为表中的主键索引,若无主键索引,则是第一个不为空的唯一索引

  • insert buffer机制

对于非聚集索引的插入和更新操作,首先判断非聚集所有页是否在缓冲池中,如果在,则直接插入;

不在的话就放到一个插入缓冲对象中,返回插入成功的结果。

然后再由master thread 以一定的频率将insert buffer与非聚集索引叶子节点进行merge操作,将多个

插入合并到一个中,提高了非聚集索引的插入的性能。

  • insert buffer条件

满足俩条件

1 索引是辅助索引

2 索引不是唯一的(因为在插入缓冲时,并不是去查找索引页来判断插入记录的唯一性,去查找就会

有离散读取的现象,insert buffer就失去了意义)

  • insert buffer问题

1 在应用程序插入数据时宕机,大量的insert buffer并没有合并到实际的非聚集索引中,此时数据库恢复的话需要大量的时间

2 insert buffer在写密集的情况下会占用大量的缓冲区内存,默认最大是一半的缓冲区内存,可能影响其他操作

InnoDB关键特性之插入缓冲相关推荐

  1. [MySQL] InnoDB三大特性之 - 插入缓冲

    InnoDB存储引擎有三大特性非常令人激动,它们分别是插入缓冲.两次写和自适应哈希,本篇文章先介绍第一个特性 - 插入缓冲(insert buffer) 在上一篇<MySQL - 浅谈InnoD ...

  2. InnoDB关键特性之doublewrite

    部分写失效 想象这么一个场景,当数据库正在从内存向磁盘写一个数据页时,数据库宕机,从而导致这个页只写了部分数据,这就是部分写失效,它会导致数据丢失.这时是无法通过重做日志恢复的,因为重做日志记录的是对 ...

  3. 按顺序插入图片_MysqlInnodb特性之插入缓存

    InnoDB存储引擎的关键特性包括插入缓冲.两次写(double write).自适应哈希索引(adaptive hash index).这些特性为InnoDB存储引擎带来了更好的性能和更高的可靠性. ...

  4. 谷歌、脸书、魔兽世界都在用!InnoDB是什么?有哪些关键特性?

    导读:InnoDB是事务安全的MySQL存储引擎,设计上采用了类似于Oracle数据库的架构.通常来说,InnoDB存储引擎是OLTP应用中核心表的首选存储引擎.同时,也正是因为InnoDB的存在,才 ...

  5. mysql 插入缓冲

    在看<mysql技术内幕:innodb存储引擎>看到插入缓冲,google了一下,发现如下解释: 摘录自:http://www.itpub.net/viewthread.php?tid=1 ...

  6. Mysql关键特性-插入缓冲 (Insert Buffer)

    1.什么是插入缓冲 (Insert Buffer insert buffer是一种特殊的数据结构(B+ tree)并不是缓存的一部分,而是物理页,这里讲的缓冲是针对的非聚集索引并且索引不是唯一的. 对 ...

  7. MySQL :InnoDB 存储引擎(lnnoDB 关键特性)

    asdsInnoDB 是事务安全的MySQL 存储引擎,设计上采用了类似于Oracle 数据库的架构.通常来说, InnoDB 存储引擎是OLTP应用中核心表的首选存储引擎.同时,也正是因为InnoD ...

  8. 什么是Mysql的next-key、插入缓冲、二次写、自适应哈希索引和预读

    目录 楔子 一.间隙锁(Next-Key锁) 二.插入缓冲(Insert Buffer) 2.1.什么是insert buffer? 2.2.insert buffer的触发条件? 2.3.为什么不能 ...

  9. mysql 插入缓冲_innodb insert buffer 插入缓冲区的理解

    今天在做一个大业务的数据删除时,看到下面的性能曲线图 在删除动作开始之后,insert buffer 大小增加到140.对于这些状态参数的说明 InnoDB Insert Buffer 插入缓冲,并不 ...

最新文章

  1. 深度学习中的卷积网络简介
  2. 简单综合部署nagios环境
  3. MetaPhlAn2-增强版宏基因组分类谱工具
  4. linux下ping不通问题的说明与解决(DNS配置丢失)
  5. 面向对象发牌Java_面向对象思路的斗地主发牌小程序
  6. 工业用微型计算机(29)-dos和BIOS调用(3)和半导体存储器构造
  7. C 中可以这样写函数的参数 !!
  8. php300云,概述 · PHP300Framework2.0 · 看云
  9. Java Duration类| isZero()方法与示例
  10. oracle数据库中索引会失效的几种情况
  11. zabbix server监控项报警提示:“Zabbix discoverer processes 75% busy”
  12. 安卓编程入门 06 开始接触后台代码
  13. 从写博到出书:过程全记录
  14. .rpt 文件怎麽打開?Crystal Reports 打開.rpt失敗 ?
  15. 计算机科学与技术光学成像专业,光信息科学与技术专业就业方向有哪些
  16. Amlogic 4K UI显示
  17. Linux-shell脚本基础
  18. 个人永久性免费-Excel催化剂功能第41波-文件文件夹相关函数
  19. 地表真实温度,辐射温度,亮度温度的区别
  20. 给图片加上水印php视频,如何使用PHP给图片加水印

热门文章

  1. [RK3399][Android7.1] 调试笔记 --- DDR中clock相关配置
  2. MQL5:zig-zag 指标
  3. Java加密算法—凯撒加密实现以及暴力破解
  4. 汉字转换为拼音Java工具类
  5. python用表格中的数据画柱状图_Python数据可视化:5种绘制柱状图表的方法(附源码)...
  6. 手机没Root?你照样可以渗透路由器
  7. 举着一片片小小柔柔的叶子
  8. 鸿蒙系统首批机型,鸿蒙系统名单确认,麒麟9000机型首批,众多机型要说再见!...
  9. PHP in_array 函数,解决大量数据判断in_array的效率慢,in_array 效率优化
  10. 此计算机上无法找到autocad2017,无法安装cad2017,电脑提示无法定位inf的修复方法...