聚集索引與非聚集索引的區別
首先,看下索引的分類。微軟官方介紹索引的型別:
聚集索引和非聚集索引的根本區別是表記錄的排列順序和與索引的排列順序是否一致.
聚集索引表記錄的排列順序與索引的排列順序一致,優點是查詢速度快,因為一旦具有第乙個索引值的紀錄被找到,具有連續索引值的記錄也一定物理的緊跟其後。
聚集索引的缺點是對錶進行修改速度較慢,這是為了保持表中的記錄的物理順序與索引的順序一致,而把記錄插入到資料頁的相應位置,必須在資料頁中進行資料重排,降低了執行速度。
建議使用聚集索引的場合為:
a.此列包含有限數目的不同值;
b.查詢的結果返回乙個區間的值;
c.查詢的結果返回某值相同的大量結果集。
非聚集索引指定了表中記錄的邏輯順序,但記錄的物理順序和索引的順序不一致,聚集索引和非聚集索引都採用了b+樹的結構,但非聚集索引的葉子層並不與實際的資料頁相重疊,而採用葉子層包含乙個指向表中的記錄在資料頁中的指標的方式。非聚集索引比聚集索引層次多,新增記錄不會引起資料順序的重組。
建議使用非聚集索引的場合為:
a.此列包含了大量數目不同的值;
b.查詢的結束返回的是少量的結果集;
c.order by 子句中使用了該列。
–不用索引查詢
select * from indextesttable whit(index(0))
where status=』b』
–建立聚集索引
create clustered index icindextesttable
on indextesttable(status)
go–使用索引查詢
select * from indextesttablewith(index(icindextesttable))
where status=』b』
建了索引塊後 查詢的時候首先查詢索引塊在查詢索引塊中的內容
聚集索引的區別
聚集索引:物理儲存按照索引排序
非聚集索引:物理儲存不按照索引排序
優勢與缺點
聚集索引:插入資料時速度要慢(時間花費在「物理儲存的排序」上,也就是首先要找到位置然後插入),查詢資料比非聚集資料的速度快
聚集索引與非聚集索引的區別
資料庫原理 裡面的解釋 聚集索引的順序就是資料的物理儲存順序,而非聚集索引的順序和資料物理排列無關。因為資料在物理存放時只能有一種排列方式,所以一 個表只能有乙個聚集索引。在sql server中,索引是通過二叉樹的資料結構來描述的 我們可以如此理解這個兩種索引 聚集索引的葉節點就是資料節點,而非聚...
聚集索引與非聚集索引
非聚集索引也是堆結構?其實sqlserver有幾種頁面型別 資料都使用一頁一頁來儲存,就像windows的記憶體也是使用頁面來組織的 感興趣的朋友可以了解下,希望本文可以增加你們對非聚集索引結構的理解。我們知道sqlserver的資料行的儲存有兩種資料結構 a 堆b b樹 binary 二叉樹 資料...
聚集索引與非聚集索引
一 聚集索引概念 漢語字典的正文本身就是乙個聚集索引。比如,我們要查 安 字,就會很自然地翻開字典的前幾頁,因為 安 的拼音是 an 而按照拼音排序漢字的字典是以英文本母 a 開頭並以 z 結尾的,那麼 安 字就自然地排在字典的前部。如果您翻完了所有以 a 開頭的部分仍然找不到這個字,那麼就說明您的...