非聚集索引
非聚集索引的資料儲存在乙個位置,索引儲存在另乙個位置索引帶有指標指向資料儲存位置,索引中的專案按索引值的順序儲存,而表中資訊按另一種順序儲存。
非聚集索引與聚集索引具有相同的b-tree
結構,但兩個有重大區別:
資料行不按非聚集索引鍵的順序排序和儲存;
非聚集索引的葉層不包含資料頁,相反,葉結點包含索引行。
有沒有非聚集索引都不影響資料頁的組織,因此每個表可以有多個非聚集索引,而不像聚集索引只能有乙個。在sql server2005
中每個表可以建立非聚集索引最多為249
個。
ø
資料庫在搜尋資料時,先對非聚集索引進行搜尋,找到資料值在表中的位置,然後在該位置直接檢索資料。這使得非聚集索引成為精確查詢的最佳方法,因為索引包含了描述查詢所搜尋的資料值在表中的精確位置的條目。
要點:
以下資料型別不可用作非聚集索引的鍵:
ntext
、text
、varchar(max)
、nvarchar(max)
、varbinary(max)
、xml
或image
當使用者需要用多種方法搜尋資料時,非聚集索引很有用。如:使用者可以頻繁搜尋園藝資料庫來查詢植物的俗名和學名。可以建立非聚集索引用於檢索學名,建立聚集索引用於檢索俗名。
考慮建索引的列 ø
在經常需要搜尋的列上; ø
在作為主鍵的列上; ø
在經常用在連線的列上; ø
在經常使用在where子句中的列。 ø
在經常需要排序的列上; ø
在經常需要根據範圍進行搜尋的列上;
不考慮建索引的列 ø
對於那些在查詢中很少使用或者參考的列; ø
對於那些只有很少唯一資料值的列; ø
對於那些定義為text、ntext、image或bit等資料型別的列; ø
當列的修改效能遠遠大於檢索效能時。
資料庫索引總結
資料庫索引,是資料庫管理系統中乙個排序的資料結構,以協助快速查詢 更新資料庫表中資料。索引的實現通常使用b樹及其變種b 樹。在資料之外,資料庫系統還維護著滿足特定查詢演算法的資料結構,這些資料結構以某種方式引用 指向 資料,這樣就可以在這些資料結構上實現高階查詢演算法。這種資料結構,就是索引。為表設...
資料庫索引總結
資料庫索引多採用b tree,也有hash索引。b tree索引和hash索引區別雜湊索引適合等值查詢,但是不無法進行範圍查詢 雜湊索引沒辦法利用索引完成排序 雜湊索引不支援多列聯合索引的最左匹配規則 如果有大量重複鍵值得情況下,雜湊索引的效率會很低,因為存在雜湊碰撞問題 索引簡單論述的文章 inn...
資料庫索引總結
定義 索引是對資料庫表中一列或多列的值進行排序的一種結構,使用索引可快速訪問資料庫表中的特定資訊。說白了,索引就是一種能夠在資料庫查詢中,加快查詢速度的工具。使用索引需要使用特定的資料結構,來提高查詢效率。前面提到,索引需要採用特定的資料結構來提高查詢效率,那麼究竟採用了哪些資料結構,又是如何提高查...