关于MySQL索引的几个小知识点

一、索引覆盖

如下图所示,索引有主键索引和其他索引(二级索引)。
如果二级索引上已经覆盖了查询所需的所有字段,那直接返回

在这里插入图片描述

二、回表查询

如果联合索引上没有覆盖查询所需的所有字段,那就需要通过联合索引上的主键(联合索引除了该联合索引的字段排序外,会额外有主键)到主键索引上去查找所有字段值,这个过程就是回表的磁盘I/O。下图使用name和department查询remark字段值时,需要用到回表查询,到主键索引上去查询到remark字段的值。
在这里插入图片描述

三、非聚簇索引

所以从聚簇索引和非聚簇索引层面来讲,二级索引也是非聚簇索引,需要到主键索引上查询其他数据。
在这里插入图片描述

此概念与myISAM的非聚簇索引类似,myISAM存储引擎,由于索引存储在MYI文件中,而数据存储在MYD文件中,所以通过索引查询结束后还需要到MYD文件中加载一次数据,所以是非聚簇索引。
在这里插入图片描述

四、聚簇索引

innodb的主键索引是聚簇索引(主键索引和数据存在一起,无需回表,通过主键索引查询出来以后就能获取到所有字段数据)
在这里插入图片描述

五、最左匹配原则

在这里插入图片描述
在这里插入图片描述
联合索引是按照索引字段的顺序,排序索引字段的值(name,age,position),先按照name排序,name有序的前提下再按照age排序,最后按照position排序,所以跳过第一列的排序都是无序的。

如:查询age=30的数据,在没有name的前提下,age是无序的,所以此时索引失效了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值