设为首页 - 加入收藏 泰州站长网(0523zz.Com)- 我们致力于打造专业的站长资讯、交流、合作平台!
热搜: 手机 站长之家 吉尼斯世界纪录
当前位置: 主页 > 站长学院 > MySql教程 > 正文

MySQL InnoDB的插入缓冲

发布时间:2016-01-15 08:40 所属栏目:[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列的辅助索引,对于该非聚集 索引来说,叶子节点的插入不再有序,这时就需要离散访问非聚集索引页,插入性能变低。

(编辑:admin)

网友评论
推荐文章