索引如同書本的目錄,能大幅加速查詢。對大型資料表,有索引的查詢可能從數小時縮短至數分鐘。但索引佔用額外儲存空間(叢集索引約需資料 1.2 倍空間),記憶體與磁碟不足時需權衡。可用 sp_spaceused 查看索引空間佔用。
| 特性 | 叢集索引 | 非叢集索引 |
|---|---|---|
| 資料儲存順序 | 邏輯順序 = 物理順序 | 邏輯順序 ≠ 物理順序 |
| 葉層內容 | 實際資料列 | 指向資料列的指標 |
| 每表數量 | 僅一個 | 最多 249 個 |
| 範圍查詢效能 | 極佳 | 較差 |
| 插入/更新影響 | 較小 | 需同步更新索引,效能較差 |
叢集索引宜建於常用範圍查詢欄位(如日期時間);非叢集索引適合精確查詢欄位(如使用者名稱)。兩者可共存。
單一索引涵蓋多欄位(如 姓氏 + 名字),適用於多欄位聯合查詢;若欄位常單獨查詢,宜建立獨立索引。
強制欄位值不重複。主鍵自動為唯一索引,亦可對其他欄位(如密碼)建立唯一索引防止重複。