MySQL索引--聚簇索引与非聚簇索引(二级索引)的区别

16 篇文章 1 订阅

MySQL索引_m0_48273471的博客-CSDN博客

索引的实现经历了 3 个阶段的升级:

● ⼆叉树(缺陷:层级比较高,查询和维护不方便)

● B 树(将所有数据都存储在叶子结点和非叶子结点,当数据量特别大的时候,刚把索引加载起来就需要很长的时间)

● B+ 树(优化:1. 非叶子节点不再存储表数据。2. 叶子结点存储的并不是数据本身,而是数据的地址)

缺点:数据⼤之后树很⾼,维护和查询的性能不好。

缺点:所有节点都保存了数据,加载需要很⻓的时间。  

缺点: 只有叶⼦节点才存储数据,且数据和索引是分离的,所谓的存储的数据,其实是指向数据的地址,数据量变的⾮常⼩。

(ms)问题:聚簇索引和非聚簇索引(二级索引)的区别(或者聚集索引和非聚集索引的区别):

 

聚簇索引对比的是主键,如果主键能够对应的上,那么就直接能查询到主键对应的这一行数据。

二级索引的叶子结点存储的是主键,因此当二级主键能够匹配上之后,只能拿到主键的信息,不能查询到主键对应的这一行数据。但是可以根据主键的信息,去聚簇索引里面找到叶子结点所对应的行数据,这样才能完成二级索引的数据查询。

把二级索引进行查询数据的这个过程叫做回表查询(二级索引----》找到主键ID---》查询聚簇索引找到相应的数据)

聚簇索引和⾮聚簇索引的区别主要体现在两⽅⾯:
        1. 执⾏效率:聚簇索引的查询效率更快,而二级索引需要进行“回表查询”,因此二级索引效率更低。
        2. 数量上:聚簇索引⼀个表只能有⼀个,⽽⾮聚簇索引可以有多个。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值