聚集索引決定數據的物理存儲順序,每表僅能有一個;非聚集索引是邏輯順序的獨立結構,通過行定位器(RID 或聚集鍵)指向數據行,每表可建多個。
| 維度 | 聚集索引 | 非聚集索引 |
|---|---|---|
| 物理存儲 | 葉級頁即數據頁,按索引鍵有序存放 | 葉級頁存索引鍵+行定位器,不影響數據物理順序 |
| 數量限制 | 每表 1 個 | 每表最多 999 個 (SQL 2008+) |
| 範圍查詢 | 極優(掃描連續頁) | 需鍵查找回表,成本較高 |
| 覆蓋索引 | 天然覆蓋所有列 | 可通過 INCLUDE 列實現覆蓋 |
| 維護成本 | 插入/更新可能導致頁分裂 | 相對輕量,但過多會拖慢寫入 |
| 默認約束 | PRIMARY KEY 默認聚集 | UNIQUE 約束默認非聚集 |