InnoDB关键特性之插入缓冲
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关键特性之插入缓冲相关推荐
- [MySQL] InnoDB三大特性之 - 插入缓冲
InnoDB存储引擎有三大特性非常令人激动,它们分别是插入缓冲.两次写和自适应哈希,本篇文章先介绍第一个特性 - 插入缓冲(insert buffer) 在上一篇<MySQL - 浅谈InnoD ...
- InnoDB关键特性之doublewrite
部分写失效 想象这么一个场景,当数据库正在从内存向磁盘写一个数据页时,数据库宕机,从而导致这个页只写了部分数据,这就是部分写失效,它会导致数据丢失.这时是无法通过重做日志恢复的,因为重做日志记录的是对 ...
- 按顺序插入图片_MysqlInnodb特性之插入缓存
InnoDB存储引擎的关键特性包括插入缓冲.两次写(double write).自适应哈希索引(adaptive hash index).这些特性为InnoDB存储引擎带来了更好的性能和更高的可靠性. ...
- 谷歌、脸书、魔兽世界都在用!InnoDB是什么?有哪些关键特性?
导读:InnoDB是事务安全的MySQL存储引擎,设计上采用了类似于Oracle数据库的架构.通常来说,InnoDB存储引擎是OLTP应用中核心表的首选存储引擎.同时,也正是因为InnoDB的存在,才 ...
- mysql 插入缓冲
在看<mysql技术内幕:innodb存储引擎>看到插入缓冲,google了一下,发现如下解释: 摘录自:http://www.itpub.net/viewthread.php?tid=1 ...
- Mysql关键特性-插入缓冲 (Insert Buffer)
1.什么是插入缓冲 (Insert Buffer insert buffer是一种特殊的数据结构(B+ tree)并不是缓存的一部分,而是物理页,这里讲的缓冲是针对的非聚集索引并且索引不是唯一的. 对 ...
- MySQL :InnoDB 存储引擎(lnnoDB 关键特性)
asdsInnoDB 是事务安全的MySQL 存储引擎,设计上采用了类似于Oracle 数据库的架构.通常来说, InnoDB 存储引擎是OLTP应用中核心表的首选存储引擎.同时,也正是因为InnoD ...
- 什么是Mysql的next-key、插入缓冲、二次写、自适应哈希索引和预读
目录 楔子 一.间隙锁(Next-Key锁) 二.插入缓冲(Insert Buffer) 2.1.什么是insert buffer? 2.2.insert buffer的触发条件? 2.3.为什么不能 ...
- mysql 插入缓冲_innodb insert buffer 插入缓冲区的理解
今天在做一个大业务的数据删除时,看到下面的性能曲线图 在删除动作开始之后,insert buffer 大小增加到140.对于这些状态参数的说明 InnoDB Insert Buffer 插入缓冲,并不 ...
最新文章
- 深度学习中的卷积网络简介
- 简单综合部署nagios环境
- MetaPhlAn2-增强版宏基因组分类谱工具
- linux下ping不通问题的说明与解决(DNS配置丢失)
- 面向对象发牌Java_面向对象思路的斗地主发牌小程序
- 工业用微型计算机(29)-dos和BIOS调用(3)和半导体存储器构造
- C 中可以这样写函数的参数 !!
- php300云,概述 · PHP300Framework2.0 · 看云
- Java Duration类| isZero()方法与示例
- oracle数据库中索引会失效的几种情况
- zabbix server监控项报警提示:“Zabbix discoverer processes 75% busy”
- 安卓编程入门 06 开始接触后台代码
- 从写博到出书:过程全记录
- .rpt 文件怎麽打開?Crystal Reports 打開.rpt失敗 ?
- 计算机科学与技术光学成像专业,光信息科学与技术专业就业方向有哪些
- Amlogic 4K UI显示
- Linux-shell脚本基础
- 个人永久性免费-Excel催化剂功能第41波-文件文件夹相关函数
- 地表真实温度,辐射温度,亮度温度的区别
- 给图片加上水印php视频,如何使用PHP给图片加水印
热门文章
- [RK3399][Android7.1] 调试笔记 --- DDR中clock相关配置
- MQL5:zig-zag 指标
- Java加密算法—凯撒加密实现以及暴力破解
- 汉字转换为拼音Java工具类
- python用表格中的数据画柱状图_Python数据可视化:5种绘制柱状图表的方法(附源码)...
- 手机没Root?你照样可以渗透路由器
- 举着一片片小小柔柔的叶子
- 鸿蒙系统首批机型,鸿蒙系统名单确认,麒麟9000机型首批,众多机型要说再见!...
- PHP in_array 函数,解决大量数据判断in_array的效率慢,in_array 效率优化
- 此计算机上无法找到autocad2017,无法安装cad2017,电脑提示无法定位inf的修复方法...