聚集索引和非聚集索引
一)
聚集索引和非聚集索引
聚集索引和非聚集索引的根本區別是表記錄的排列順序和與索引的排列順序是否一致,
聚集索引表記錄的排列順序與索引的排列順序一致,優點是查詢速度快,因為一旦具有第乙個索引值的紀錄被找到,具有連續索引值的記錄也一定物理的緊跟其後。
聚集索引的缺點是對錶進行修改速度較慢,這是為了保持表中的記錄的物理順序與索引的順序一致,而把記錄插入到資料頁的相應位置,必須在資料頁中進行資料重排,降低了執行速度。
非聚集索引指定了表中記錄的邏輯順序,但記錄的物理順序和索引的順序不一致,聚集索引和非聚集索引都採用了
b+樹的結構,但非聚集索引的葉子層並不與實際的資料頁相重疊,而採用葉子層包含乙個指向表中的記錄在資料頁中的指標的方式。非聚集索引比聚集索引層次多,新增記錄不會引起資料順序的重組。
--不用索引查詢
select * from indextesttable whit(index(0))
where status='b'
--建立聚集索引
create clustered index icindextesttable
on indextesttable(status)
go--
使用索引查詢
select * from indextesttable with(index(icindextesttable))
where status='b'
建了索引塊後
查詢的時候首先查詢索引塊
在查詢索引塊中的內容
聚集索引的區別
聚集索引
:物理儲存按照索引排序
非聚集索引
:物理儲存不按照索引排序
優勢與缺點
聚集索引:插入資料時速度要慢(時間花費在
「物理儲存的排序
」上,也就是首先要找到位置然後插入)
,查詢資料比非聚集資料的速度快
在前面的討論中我們已經提到了,聚集索引有兩個最大的優勢:
itpub
個人空間
u#n x
以最快的速度縮小查詢範圍。
以最快的速度進行字段排序。
itpub
個人空間
3rf&yg:rv第1
條多用在查詢優化時,而第
2條多用在進行分頁時的資料排序。
而聚集索引在每個表內又只能建立乙個,這使得聚集索引顯得更加的重要。聚集索引的挑選可以說是實現
「查詢優化」和
「高效分頁
」的最關鍵因素。
但要既使聚集索引列既符合查詢列的需要,又符合排序列的需要,這通常是乙個矛盾。
聚集索引是如此的重要和珍貴,所以一定要將聚集索引建立在:
您最頻繁使用的、用以縮小查詢範圍的字段上;
您最頻繁使用的、需要排序的字段上。
二)何時使用聚集索引或非聚集索引
下面的表總結了何時使用聚集索引或非聚集索引(很重要)。
動作描述
使用聚集索引
使用非聚集索引
列經常被分組排序應應
返回某範圍內的資料應不應
乙個或極少不同值
不應不應
小數目的不同值應不應
大數目的不同值不應應
頻繁更新的列不應應
外來鍵列應
應主鍵列應應
頻繁修改索引列不應應
聚集索引和非聚集索引
本文引自 一種索引,該索引中鍵值的邏輯順序決定了表中相應行的物理順序。聚集索引確定表中資料的物理順序。聚集索引類似於 簿,後者按姓氏排列資料。由於聚集索引規定資料在表中的物理儲存順序,因此乙個表只能包含乙個聚集索引。但該索引可以包含多個列 組合索引 就像 簿按姓氏和名字進行組織一樣。聚集索引對於那些...
聚集索引和非聚集索引
聚集索引和非聚集索引 1 聚集索引 聚集索引,表中的資料儲存位置,根據索引的排序進行實際儲存,因此效率是相當高的。因為聚集索引決定了表中資料行的儲存位置。乙個表不可能有兩個或以上的聚集索引,如果乙個表中已經有乙個聚集索引,那麼這個表中其他的索引都將是非聚集索引。表排列順序 表記錄的排列順序與索引的排...
聚集索引和非聚集索引
聚集索引 物理儲存按照索引排序 非聚集索引 物理儲存不按照索引排序 聚集索引 物理儲存按照索引排序 非聚集索引 物理儲存不按照索引排序 優勢與缺點 聚集索引 插入資料時速度要慢 時間花費在 物理儲存的排序 上,也就是首先要找到位置然後插入 查詢資料比非聚集資料的速度快 漢語字典的正文本身就是乙個聚集...