寫這篇文章幫助自己更好的理解索引,也算是自己的學(xué)習(xí)筆記吧,分享給大家 ,文中如果有分析的不正確的地方,歡迎指出 。
一. 聚集索引B樹分析
1.聚集索引按B樹結(jié)構(gòu)進行組織的,索引B樹種的每一頁稱為一個索引節(jié)點。B樹的頂端節(jié)點稱為根節(jié)點。
索引中的低層節(jié)點稱為葉節(jié)點。根節(jié)點與葉節(jié)點之間的任何索引級別統(tǒng)稱為中間級。在聚集索引中,葉節(jié)點包含基礎(chǔ)表的數(shù)據(jù)頁。
根節(jié)點和中間級節(jié)點包含存有索引行的索引頁。每個索引行包含一個鍵值和一個指針,該指針指向 B 樹上的某一中間級頁或葉級索引中的某個數(shù)據(jù)行.每級索引中的頁均被連接在雙向鏈接列表中。
2.索引使用的每一個分區(qū)的index_id = 1 ,默認(rèn)情況下聚集索引單個分區(qū),當(dāng)使用分區(qū)表的時候,每個分區(qū)都有一個包含該特定分區(qū)相關(guān)數(shù)據(jù)的B樹結(jié)構(gòu),我是這么理解的不知道對不對?
3.SQL Server 寫入的數(shù)據(jù),數(shù)據(jù)鏈內(nèi)的頁和行將按聚集索引鍵值進行排序。
4.SQL Server 將在索引中查找該范圍的起始鍵值,然后用向前或向后在數(shù)據(jù)頁中進行掃描。為了查找數(shù)據(jù)頁鏈的首頁,SQL Server 將從索引的根節(jié)點沿最左邊的指針進行掃描。
聚集索引B樹圖 :