首页 新闻 会员 周边

这样理解聚集索引和非聚集索引对吗?

0
[已关闭问题] 关闭于 2020-06-25 09:51

聚集索引——索引表的排列顺序,与对象表的物理存储顺序对应。也就是说,索引表第一行,对应对象表第一行的物理地址;索引表的第二行,对应对象表第二行的物理地址。

比如对象表的“成绩”列:
第一行是5分,物理地址是A1;
第二行是3分,物理地址是A2;
第三行是6分,物理地址是A3;
(记住A1、A2、A3是代表“成绩”列所在的整个行物理地址)

现在将“成绩”列设定为索引列,那么索引表的内容如下:
第一行:5分,物理地址A1;
第二行:3分,物理地址A2;
第三行:6分,物理地址A3;

有人说“聚集索引”是物理对应,就是这个意思。

注意:对象表(或者说“数据表”),每个对象表只能有一个聚集索引表。因为对象表只有一种物理存储顺序。


非聚集索引——将对象表的被索引列,按照一定规则排列后,存储在索引表,并附加整个行所在的物理地址。

比如对象表的“成绩”列:
第一行是5分,物理地址是A1;
第二行是3分,物理地址是A2;
第三行是6分,物理地址是A3;
(记住A1、A2、A3是代表“成绩”列所在的整个行物理地址)

现在将“成绩”列设定为索引列,排序规则为降序。那么索引表的内容如下:
第一行:6分,物理地址A3;
第二行:5分,物理地址A1;
第三行:3分,物理地址A2;

有人说“非聚集索引”是逻辑对应,就是这个意思。逻辑对应说的是排序规则对应,而不是物理对应(索引表第一行存储的物理地址,并不是对象表第一行的物理地址)

注意:每个对象表可以有多个非聚集索引表,因为可以有多个排序规则。

PER10的主页 PER10 | 初学一级 | 园豆:8
提问于:2019-07-06 17:01
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册