資料庫應用程式的效能基石在於模型設計。以下 10 種優化策略能有效提升查詢效率與擴展性。
對於極小且常被連接的查閱表(如性別、狀態),考慮合併至主表,減少 JOIN 開銷。1:1 關聯且高頻存取的子表亦可合併。
若應用程式輕易能完成的資料轉換(如格式化、計算),避免在資料庫建立 View 或 Computed Column 強制執行,降低 DB 負載。
如網站點擊記錄表,依月份拆分為 12 張表。查詢時僅掃描相關分區,負載降為 1/12;亦可將舊資料移至獨立伺服器,搭配分散式分區 View 查詢。
避免使用 CHAR(255) 存放短字串(如使用者名稱),改用 VARCHAR(50) 節省空間並減少 I/O。
外鍵由引擎內部強制執行,效能遠優於 Trigger,且能處理多數參考完整性場景。
若最大長度可預估(如 2000 字元),改用 VARCHAR(2000),查詢與索引效能大幅提升。
NVARCHAR、NTEXT 佔用雙倍空間。除非需支援多國語言,否則優先使用非 Unicode 型別。注意 DTS 匯入 Access 時常自動建立 Unicode 欄位,需手動調整。
叢集索引適合範圍查詢(如日期)。若建立於遞增身分識別欄,極易造成「熱點」——大量 INSERT 集中於同一資料頁,導致鎖爭用。建議叢集索引置於查詢頻繁的範圍欄位。
NULL 值需額外位元圖儲存,增加儲存與 CPU 開銷。若業務上必定有值(如地址),明確宣告 NOT NULL。
若資料列已具備唯一業務鍵(如使用者帳號、身分證號),直接採為主鍵,避免額外身分識別欄與子表 JOIN。雖佔較多儲存,但省去連接成本,查詢更快。
優化需靈活權衡:正規化減少冗余,反正規化提升讀取;分區降低掃描範圍,但增加維護複雜度。依實際存取模式調整,才能達到最佳效能。