SQL SERVER非聚集索引
一、非聚集索引
1、非聚集索引
- 聚集索引是索引结构和数据一起存放的索引。
类似于字典的正文,当我们根据拼音直接就能找到那个字。 - 非聚集索引:非聚集索引是索引结构和数据分开存放的索引。
类似于根据偏旁部首找字,首先找到该字所在的地址,再根据地址找到这个字的信息。
2、存储在数据页中
- 也是存储在页中(PageType标记为2的页,叫索引页)。
- 比如表T建立了一个非聚集索引Index_A,那么表T有100条数据的话,
那么索引Index_A也就有100条数据(准确的说是100条叶子节点数据,索引是B树结构,如果树的高度大于0,那么就有根节点页或中间节点页数据,这时索引数据就超过100条),
如果表T还有非聚集索引Index_B,那么Index_B也是至少100条数据,所以索引建越多开销越大。
3、性能影响
- 更新索引字段、插入一条数据、删除一条数据都会造成索引的维护从而造成性能的一定影响。
在不同情况下,性能影响是不同的。
比如当你有一个聚集索引,插入的数据又都是在末尾,这样几乎是不会造成数据移动,影响较小;
如果插入的数据在中间位置,一般会导致数据移动,而且可能产生分页和页碎片,影响就会稍大一点(如果插入到的中间页有足够的剩余空间容纳插入的数据,而且位置是在页末,也是不会造成数据移动)
共有 0 条评论