数据库基础知识(二)索引存储

本文详细解释了SQLServer中聚集索引与非聚集索引的存储结构。聚集索引决定了表数据的存储顺序,而非聚集索引仅包含指向数据行的指针。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    SQLServer中使用页为存储单元的,那么在建立索引时,其索引节点就是页了,然后树的键值就是存放到这些页(节点)中的。就是说表中的数据行就是存放到页上的,一个表有多个页构成,这些页以树的结构存放。

聚集索引

    如下图为聚集索引的存储结构(图片来自网络)。其中可以看出页有两种:Index Rows(索引页)、data rows(数据页),所有非叶子节点都存放着索引项,数据行是存放在叶子节点中的,只有叶子节点才真实存放着表中的每一行数据,而其他非叶子节点的页都存放着聚集索引的键值。因此查询数据的时间复杂度都是一样的,就是该树的深度。

   在4.2中有说明,聚集索引决定了表数据的存储顺序,具体可以参考4.2。若表没有创建聚集索引,则表数据时一个无序的堆结构。

非聚集索引

  与聚集索引的存储结构唯一不一样的,就是非聚集索引中不存储真正的数据行,因为在聚集索引中已经存放了数据,非聚集索引只包含一个指向数据行的指针即可。如下图所示:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值