SELECT 只取所需列、LIMIT 限制結果集;WHERE 條件符合「列 操作符 常數」形式才能用索引;避免 IS NULL、!=、OR、IN、LIKE '%...'、函數/表達式作用於列;SELECT * FROM t WITH(INDEX(idx_name)) WHERE col=@var;EXISTS (SELECT 1 FROM b WHERE b.id=a.id) 效率高於 IN 和 COUNT(*);DISTINCT 更輕量。SET NOCOUNT ON 關閉行計數返回;| 場景 | 推薦索引 | 理由 |
|---|---|---|
| 範圍查詢、頻繁排序、分組 | 聚簇索引 | 數據物理有序,定位首尾即可 |
| 高基數精確查找、JOIN 鍵 | 非聚簇索引 | B+樹查找,回表開銷可控 |
| 極少/極多不同值 | 不建索引 | 選擇度太低/高,全表掃描更快 |
| 頻繁更新列 | 非聚簇 | 避免聚簇索引頁分裂 |
FILLFACTOR 預留空間,減少頁分裂;