SQL Server 聚集索引、非聚集索引学习笔记
最近在学习了解SQL Server索引,看来http://database.51cto.com/art/201103/249822.htm的帖子,觉得很有意思,拿来分享
聚集索引:建立聚集索引的数据表将按照聚集索引的列进行物理排序,类似于字段中的拼音查找,实际的汉字顺序也是按照拼音的顺序进行排列。
非聚集索引:作为数据表的逻辑排序索引,不影响数据表的物理存储,类似于字典中按部首查找,实际的汉字顺序按拼音排列。
建立聚集索引要求的:“既不能绝大多数都相同,又不能只有极少数相同”。
如果仅用聚集索引的起始列作为查询条件和同时用到复合聚集索引的全部列的查询速度是几乎一样的,甚至比用上全部的复合索引列还要略快(在查询结果集数目一样的情况下);而如果仅用复合聚集索引的非起始列作为查询条件的话,这个索引是不起任何作用的。
无论是否经常使用聚合索引的其他列,但其前导列一定要是使用最频繁的列。
一个数据表只能创建一个聚集索引,多个非聚集索引
1、用聚合索引比用不是聚合索引的主键速度快
2、用聚合索引比用一般的主键作order by时速度快,特别是在小数据量情况下
3、使用聚合索引内的时间段,搜索时间会按数据占整个数据表的百分比成比例减少,而无论聚合索引使用了多少个
4、日期列不会因为有分秒的输入而减慢查询速度