加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL InnoDB的插入缓冲

发布时间:2016-01-15 08:40:04 所属栏目:MySql教程 来源:网络整理
导读:InnoDB存储引擎有三大特性非常令人激动,它们分别是插入缓冲、两次写和自适应哈希,本篇文章先介绍 第一个特性 - 插入缓冲(insert buffer) 在上一篇《MySQL -
InnoDB存储引擎有三大特性非常令人激动,它们分别是插入缓冲、两次写和自适应哈希,本篇文章先介绍 第一个特性 - 插入缓冲(insert buffer)

在上一篇《MySQL - 浅谈InnoDB存储引擎》中,我们可以 看到在InnoDB的内存中有单独一块叫“插入缓冲”的区域,下面我们详细来介绍它。

非聚集索引写性 能问题

为了阐述非聚集索引写性能问题,我们先来看一个例子:

mysql>create table t (

id int auto_increment,

name varchar(30),

primary key (id));

我们创建了一个表,表 的主键是id,id列式自增长的,即当执行插入操作时,id列会自动增长,页中行记录按id顺序存放,不需要 随机读取其它页的数据。因此,在这样的情况下(即聚集索引),插入操作效率很高。

但是,在大部 分应用中,很少出现表中只有一个聚集索引的情况,更多情况下,表上会有多个非聚集的secondary index (辅助索引)。比如,对于上一张表t,业务上还需要按非唯一的name字段查找,则表定义改为:

mysql>create table t (

id int auto_increment,

name varchar(30),

primary key (id),

key (name));

这时,除了主键聚合索引外,还产生了一个name列的辅助索引,对于该非聚集 索引来说,叶子节点的插入不再有序,这时就需要离散访问非聚集索引页,插入性能变低。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读