什么是聚簇索引和非聚簇索引

在这里插入图片描述

在这里插入图片描述

聚簇索引(Clustered Index)指的是按照每张表的主键构建的一种索引方式

它是将表数据按照主键的顺序存储在磁盘上的一种方式。这种索引方式保证了行的物理存储顺序与主键的逻辑顺序相同,因此查找聚簇索引的速度非常快。

idnamescore物理地址
1叶良辰780×01
2龙傲天880×02
3赵日天560×03
4徐胜虎770×04

非聚簇索引(Non-clustered Index)是指根据非主键字段创建的索引

也就是通常所说的二级索引。它不影响表中数据的物理存储顺序,而是单独创建一张索引表,用于存储索引列和对应行的指针。

聚簇索引的叶子节点中存储的是整行记录。而非聚簇索引的叶子节点中存储的是主键ID,所以,通过非聚簇索引的查询,需要进行一次回表,就是先查到ID,在通过ID查询所需字段。

没有创建主键怎么办?

我们知道,Innodb中的聚簇索引是自动按照每张表的主键构造一个B+树,那么不知道大家有没有想过这个问题,如果我们在表结构中没有定义主键,那怎么办呢?

如果我们在表结构中没有定义主键,那怎么办呢?

其实,数据库中的每行记录中,除了保存了我们自己定义的一些字段以外,还有一些重要的 db_row_id字段,其实他就是一个数据库帮我添加的隐藏主键,如果我们没有给这个表创建主键,会选择一个不为空的唯一索引来作为聚簇索引,但是如果没有合适的唯一索引,那么会以这个隐藏主键来创建聚簇索引。

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值