索引是資料庫中提升查詢效能的關鍵結構,透過預先排序的資料指標,讓資料庫引擎能快速定位特定資料列,而無需掃描整張表。以下介紹四種常見索引類型:
唯一索引確保索引欄位的值在表中不重複。建立時在 CREATE INDEX 陳述式中加入 UNIQUE 選項。例如:
CREATE UNIQUE INDEX idx_unique_email ON users(email);
複合索引針對兩個或多個欄位的組合值建立索引,最多支援 16 個欄位,且所有欄位必須屬於同一張表。適用於常一起出現在 WHERE 或 JOIN 條件中的欄位組合。範例:
CREATE INDEX idx_name_dept ON employees(last_name, department_id);
叢集索引決定資料在表中的物理儲存順序,一張表只能擁有一個叢集索引。建立時使用 CLUSTERED 選項。通常建在主鍵或常用於範圍查詢的欄位上。
非叢集索引不影響資料的物理順序,而是建立一個獨立的索引結構,指向實際資料列。一張表可建立多個非叢集索引,使用 NONCLUSTERED 選項建立。
視圖是一個虛擬表格,其內容由 SELECT 陳述式定義。視圖不儲存實際資料,僅儲存查詢定義,每次存取視圖時才執行底層查詢。視圖可簡化複雜查詢、提供資料安全性(限制特定欄位/列存取)並隔離應用程式與資料表結構變更。
CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
善用索引與視圖,能大幅提升資料庫查詢效能與維護彈性。