非聚集索引詳解

2021-12-29 21:39:59 字數 832 閱讀 4452

非聚集索引是一種索引,該索引中索引的邏輯順序與磁碟上行的物理儲存順序不同。

非聚集索引與聚集索引一樣有 b 樹結構,但是有兩個重大差別:

資料行不按非聚集索引鍵的順序排序和儲存。非聚集索引的葉層不包含資料頁。 相反,葉節點包含索引行。每個索引行包含非聚集鍵值以及乙個或多個行定位器,這些行定位器指向有該鍵值的資料行(如果索引不唯一,則可能是多行)。 非聚集索引可以在有聚集索引的表、堆集或索引檢視上定義。在microsoft? sql server? 2000中,非聚集索引中的行定位器有兩種形式:

如果表是堆集(沒有聚集索引),行定位器就是指向行的指標。該指標用檔案識別符號 (id)、頁碼和頁上的行數生成。整個指標稱為行 id。如果表有聚集索引,或者索引在索引檢視上,則行定位器就是行的聚集索引鍵。如果聚集索引不是唯一的索引,sql server 2000 將新增在內部生成的值以使重複的鍵唯一。使用者看不到這個值,它用於使非聚集索引內的鍵唯一。sql server 通過使用聚集索引鍵搜尋聚集索引來檢索資料行,而聚集索引鍵儲存在非聚集索引的葉行內。由於非聚集索引將聚集索引鍵作為其行指標儲存,因此使聚集索引鍵盡可能小很重要。如果表還有非聚集索引,請不要選擇大的列作為聚集索引的鍵。

聚集索引 非聚集索引

通常情況下,建立索引是加快查詢速度的有效手段。但索引不是萬能的,靠索引並不能實現對所有資料的快速訪問。事實上,如果索引策略和資料檢索需求嚴重不符的話,建立索引反而會降低查詢效能。因此在實際使用當中,應該充分考慮到索引的開銷,包括磁碟空間的開銷及處理開銷 如資源競爭和加鎖 例如,如果資料頻繁的更新或刪...

聚集索引和非聚集索引的區別詳解

sql server提供了兩種索引 聚集索引和非聚集索引。其中聚集索引表示表中儲存的資料按照索引的順序儲存,檢索效率比非聚集索引高,但對資料更新影響較大。非聚集索引表示資料儲存在乙個地方,索引儲存在另乙個地方,索引帶有指標指向資料的儲存位置,非聚集索引檢索效率比聚集索引低,但對資料更新影響較小。方法...

聚集索引和非聚集索引

聚集索引和非聚集索引 一 聚集索引和非聚集索引 聚集索引和非聚集索引的根本區別是表記錄的排列順序和與索引的排列順序是否一致,聚集索引表記錄的排列順序與索引的排列順序一致,優點是查詢速度快,因為一旦具有第乙個索引值的紀錄被找到,具有連續索引值的記錄也一定物理的緊跟其後。聚集索引的缺點是對錶進行修改速度...