Mysql聚簇索引

1、聚集索引(聚簇索引)

聚集索引:指索引项的排序方式和表中数据记录排序方式一致的索引。聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。术语“聚簇”表示数据行和相邻的键值紧凑的存储在一起。

  也就是说聚集索引的顺序就是数据的物理存储顺序。它会根据聚集索引键的顺序来存储表中的数据,即对表的数据按索引键的顺序进行排序,然后重新存储到磁盘上。因为数据在物理存放时只能有一种排列方式,所以一个表只能有一个聚集索引。

在这里插入图片描述
比如字典中,用‘拼音’查汉字,就是聚集索引。因为正文中字都是按照拼音排序的。而用‘偏旁部首’查汉字,就是非聚集索引,因为正文中的字并不是按照偏旁部首排序的,我们通过检字表得到正文中的字在索引中的映射,然后通过映射找到所需要的字。

聚集索引的使用场合为:

a.查询命令的回传结果是以该字段为排序依据的;

b.查询的结果返回一个区间的值;

c.查询的结果返回某值相同的大量结果集。

聚集索引会降低 insert,和update操作的性能,所以,是否使用聚集索引要全面衡量。

2、非聚集索引

非聚集索引: 索引顺序与物理存储顺序不同

在这里插入图片描述
非聚集索引的使用场合为:

a.查询所获数据量较少时;

b.某字段中的数据的唯一性比较高时;

非聚集索引必须是稠密索引

3、InnoDB与MyISAM

  • 聚簇索引:聚簇顾名思义,聚集在一起,即索引和数据是存放同一个文件中。其叶子节点中存放的就是整张表的行记录数据,也将聚集索引的叶子节点称为数据页。
  • 非聚簇索引:索引文件和数据文件是分开的。

MyISAM引擎默认使用的是非聚簇索引。
在这里插入图片描述

InnoDB引擎使用的是聚簇索引。
在这里插入图片描述

如下图所示:

  • emp表是通过InnoDB引擎创建的表,emp表有一个emp.ibd这一个文件
  • emp_2表是通过MyISAM引擎创建的表,emp_2表有两个文件,即emp_2.myd(数据文件)和emp_2.myi(索引树文件)

在这里插入图片描述

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值