首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 資料庫技術(四十九):索引概念、B 樹結構與叢集/非叢集索引差異

     編輯:關於SqlServer

8.1.1 索引概念

索引是獨立的物理資料庫結構,包含表中一或多欄值的集合及指向儲存這些值之資料頁的邏輯指標清單。索引儲存於索引頁面,遠小於資料頁面。查詢時先搜尋索引頁面取得指標,再直接讀取資料頁面。猶如書本目錄,大幅提升檢索效率。

索引與關鍵字/約束關聯緊密。關鍵字分邏輯關鍵字(概念層面)與物理關鍵字(定義索引欄位,即索引本身)。

8.1.2 索引結構

B 樹結構

SQL Server 索引採 B 樹結構維護:根節點 → 0 到多個中間層 → 葉節點(Level 0)。索引欄位越寬,B 樹層次越深,查詢需訪問索引頁越多,效能隨之降低。


圖 8-1 索引 B 樹結構

叢集索引

將表資料依欄位排序後重新儲存,索引與資料合一,葉節點即實際資料。查詢極快,但佔用空間約為資料空間 120%,每表僅能建一個。

非叢集索引

結構與資料完全分離,葉節點儲存索引鍵值與列定位器。若資料為叢集索引儲存,定位器為叢集索引鍵;否則為堆儲存結構,定位器為資料列指標。非叢集索引排序與資料頁順序不匹配,需更多儲存空間、查詢效率較低,但每表最多可建 249 個。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved