非聚集索引--百度百科

非聚集索引
  一種索引,該索引中索引的邏輯順序與磁盤上行的物理存儲順序不同。
  非聚集索引與聚集索引一樣有 B 樹結構,但是有兩個重大差別:
  數據行不按非聚集索引鍵的順序排序和存儲。非聚集索引的葉層不包含數據頁。 相反,葉節點包含索引行。每個索引行包含非聚集鍵值以及一個或多個行定位器,這些行定位器指向有該鍵值的數據行(如果索引不唯一,則可能是多行)。 非聚集索引可以在有聚集索引的表、堆集或索引視圖上定義。在 Microsoft® SQL Server™ 2000 中,非聚集索引中的行定位器有兩種形式:
  如果表是堆集(沒有聚集索引),行定位器就是指向行的指針。該指針用文件標識符 (ID)、頁碼和頁上的行數生成。整個指針稱爲行 ID。如果表沒有聚集索引,或者索引在索引視圖上,則行定位器就是行的聚集索引鍵。如果聚集索引不是唯一的索引,SQL Server 2000 將添加在內部生成的值以使重複的鍵唯一。用戶看不到這個值,它用於使非聚集索引內的鍵唯一。SQL Server 通過使用聚集索引鍵搜索聚集索引來檢索數據行,而聚集索引鍵存儲在非聚集索引的葉行內。 由於非聚集索引將聚集索引鍵作爲其行指針存儲,因此使聚集索引鍵儘可能小很重要。如果表還有非聚集索引,請不要選擇大的列作爲聚集索引的鍵。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章