北京北大青鳥學校指導教學:
在SQL Server中,為了查詢性能的優(yōu)化,有時我們就需要對數(shù)據(jù)表通過建立索引的方式,目的主要是根據(jù)查詢要求,迅速縮小查詢范圍,避免全表掃描。
索引有兩種類型,分別是聚集索引(clustered index,也稱聚類索引、簇集索引)和非聚集索引(nonclustered index,也稱非聚類索引、非簇集索引)。下面,北京北大青鳥學校為大家介紹一下這兩種索引的定義。
聚集索引在一個表中只能有一個,默認情況下在主鍵建立的時候創(chuàng)建,它是規(guī)定數(shù)據(jù)在表中的物理存儲順序,我們也可以取消主鍵的聚集索引,所以必須考慮數(shù)據(jù)庫可能用到的查詢類型以及使用的最為頻繁的查詢類型,對其最常用的一個字段或者多個字段建立聚集索引或者組合的聚集索引,它就是SQL Server會在物理上按升序(默認)或者降序重排數(shù)據(jù)列,這樣就可以迅速的找到被查詢的數(shù)據(jù)。
非聚集索主要是數(shù)據(jù)存儲在一個地方,索引存儲在另一個地方,索引帶有指針指向數(shù)據(jù)的存儲位置。索引中的項目按索引鍵值的順序存儲,而表中的信息按另一種順序存儲?梢栽谝粋表格中使用高達249個非聚集的索引,在查詢的過程中先對非聚集索引進行搜索,找到數(shù)據(jù)值在表中的位置,然后從該位置直接檢索數(shù)據(jù)。這使非聚集索引成為精確匹配查詢的最佳方法,因為索引包含描述查詢所搜索的數(shù)據(jù)值在表中的精確位置的條目。 (北京北大青鳥學校)