北大青鸟教学:SQL Server中使用索引需要注意的问题(上)

在上一篇内容中,北大青鸟北京学校老师介绍了索引的两种类型:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。这篇文章,我们将介绍一下在使用中需要注意的问题。

我们在选择创建聚集索引的时候要注意以下几个方面:
1) 对表建立主键时,就会为主键自动添加了聚集索引,如自动编号字段,而我们没有必要把聚集索引浪费在主键上,除非你只按主键查询,所以会把聚集索引设置在按条件查询频率最高的那个字段或者组合的字段。

2) 索引的建立要根据实际应用的需求来进行,并非是在任何字段上建立索引就能提高查询速度。聚集索引建立遵循下面几个原则:
包含大量非重复值的列。
使用下列运算符返回一个范围值的查询:BETWEEN、>、>=、< 和 <=。 
被连续访问的列。
返回大型结果集的查询。 (北大青鸟北京学校)
经常被使用联接或 GROUP BY 子句的查询访问的列;一般来说,这些是外键列。对ORDER BY 或 GROUP BY 子句中指定的列进行索引,可以使 SQL Server 不必对数据进行排序,因为这些行已经排序。这样可以提高查询性能。

OLTP 类型的应用程序,这些程序要求进行非常快速的单行查找(一般通过主键)。应在主键上创建聚集索引。 

3) 在聚集索引中按常用的组合字段建立索引,形成复合索引,一般在为表建立多个主键的时候就会产生,如果一个表中的数据在查询时有多个字段总是同时出现则这些字段就可以作为复合索引,这样能形成索引覆盖,提高where语句的查询效率。 (北大青鸟北京学校)

北大青鸟网上报名
北大青鸟招生简章