聚集索引——索引表的排列顺序,与对象表的物理存储顺序对应。也就是说,索引表第一行,对应对象表第一行的物理地址;索引表的第二行,对应对象表第二行的物理地址。
比如对象表的“成绩”列:
第一行是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;
有人说“非聚集索引”是逻辑对应,就是这个意思。逻辑对应说的是排序规则对应,而不是物理对应(索引表第一行存储的物理地址,并不是对象表第一行的物理地址)
注意:每个对象表可以有多个非聚集索引表,因为可以有多个排序规则。