在 DB2 資料庫管理中,索引設計的優劣直接決定了查詢效能的高低。本文系統梳理了 DB2 索引設計的十大核心準則,並深入解析索引特徵與優化策略,助您構建高效能的資料庫架構。
組合索引包含多個欄位(如 ColA, ColB, ColC),其優勢在於一個索引可同時滿足多種查詢模式。根據「最左前綴原則」,該索引等同於擁有 (ColA)、(ColA, ColB)、(ColA, ColB, ColC) 三個索引,大幅減少索引維護開銷。
當查詢所需欄位全包含於同一組合索引時,資料庫僅需掃描索引頁即可完成查詢,無須訪問資料頁。雖額外維護欄位會增加更新與儲存成本,但對高頻查詢場景,I/O 減少帶來的效能提升遠超成本。
資料量極小的表,全表掃描往往比索引遍歷更快。建立索引反而增加維護負擔,建議依據實際執行計畫評估。
索引設計需在查詢速度與更新成本間取得平衡。窄索引佔用空間小、維護輕;寬索引覆蓋查詢多。經驗豐富的 DBA 亦難人工枚舉最優組合,建議借助自動化工具輔助決策。
DB2 支援在視圖與計算欄上建立索引,擴展了優化手段,適用於複雜查詢重構場景。
含空值的單欄索引不會儲存該記錄;複合索引僅當所有欄位皆為空時才不存儲。含空值欄位的索引在 WHERE col IS NULL 條件下往往失效,導致全表掃描。
經常檢索大表中少於 15% 行數的查詢,建立索引效果顯著。依據「95/5 原則」:若回傳行數 < 5% 總行數,索引為最快路徑;超過 5% 則全表掃描可能更優。
主鍵與唯一約束隱含唯一索引,但外鍵欄位不會自動建立索引,JOIN 查詢頻繁的外鍵欄位建議顯式建立索引。
確定需建立索引後,需根據業務場景選擇合適的索引類型:
ORDER BY col DESC 場景。此外,可透過 填充因子 預留頁面空間減少分頁分裂,利用 檔案群組 將索引置於不同磁碟提升 I/O 並行度。位圖索引適用於低基數欄位(如性別、狀態碼)的複雜條件組合查詢。
索引設計是「查詢加速」與「維護成本」的博弈。遵循上述準則,結合工作負載特徵,善用自動化工具持續調優,方能構建高效穩定的 DB2 索引體系。
