1.聚簇索引:
聚簇索引:
1.如果表中有主键pk ,则 pk为聚簇索引
2.如果没有pk,则选择not null unique index 不为空的
唯一索引为 簇簇索引
3. 如果以上都没有,则生成一个默认的 row_id 作为聚簇索引
什么是聚簇索引
1.聚簇索引是叶子节点存储的行数据,每一个为聚簇索引的值,都包含那个值的行数据
什么是普通索引
create index index_name on 表(字段)
这就是普通索引的创建,
这个索引的叶子节点存放的是 主键 id
回表
回表就是 查询的字段 与where 条件字段不一致,进行回表查询
什么是回表:
例:
select name from student where name = 'libai'
查询字段 name 与 where name 一致 ,不会回表 只会在name的叶子节点存的name,来拿name
name 这个索引叶子节点存放的是 pk
所以也可以按以下查询
select id,name from student where name = 'libai'
什么是索引覆盖
就是以上的 不回表案例
怎样查询索引失效,会回表
例:
select name ,age ,id from student where name = 'libai'
当查询列 不包含在 where 条件字段 时 , 不会索引覆盖,还是会回表
但是
create index name_age student(name,age);
这样联合索引 进行 查询 不会失效 ,剩下的慢慢讲
感觉不错点个赞~