好好理解聚簇索引和非聚簇索引

说实话 如果你可以在解释聚簇索引和非聚簇索引的区别和联系的时候,脑袋里面能够出现两颗B+树 实际上就很好解释两者大的关系。

  1. 聚簇索引(Clustered Index)

    • 非叶子节点:存储的是索引的键值(即主键值),用于导航到对应的叶子节点。
    • 叶子节点:存储索引的键值和整个数据行本身。因为聚簇索引的叶子节点包含完整的数据行,所以通过聚簇索引可以直接获取数据行,无需额外的查找操作。
  2. 非聚簇索引(Secondary Index)

    • 非叶子节点:同样存储的是索引的键值(辅助索引列的值),用于导航到对应的叶子节点。
    • 叶子节点:存储索引的键值和指向聚簇索引键的指针。通过这个指针(聚簇索引键)可以进一步访问聚簇索引,从而获取整个数据行。叶子节点并不直接包含完整的数据行,而是通过聚簇索引键来定位。

这样的结构设计使得聚簇索引能够直接通过索引访问数据行,而非聚簇索引则通过两步查询实现对数据行的访问:首先通过辅助索引找到聚簇索引键,然后通过聚簇索引键再次查找到整个数据行。

总结起来,聚簇索引的叶子节点直接存储整个数据行,而非聚簇索引的叶子节点存储索引键值和聚簇索引键的指针。


还有如果能够理解聚簇和非聚簇索引叶子节点和非叶子节点存储的是什么东西 说明已经掌握了:
聚簇索引的非叶子节点存储的是索引的键值,而叶子节点存储索引的键值和数据行本身; 而非聚簇索引的非叶子节点也是存储该索引的键值,而叶子节点存储索引的键值和聚簇索引的键值。
(非叶子节点用来找叶子节点用的。叶子节点用来找数据用的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值