承接前文,本篇聚焦 DB2 表空間設計的規則二與規則三:依字段使用頻率拆分資料表、將索引、長字段、普通數據分離存儲,為您構建高效存儲架構提供關鍵指引。
同一資料表內,不同欄位的存取頻率往往懸殊。以人事系統為例,員工基本資料頻繁查詢,但身分證影本、照片等 LOB 大物件極少存取。若採用 SELECT * 全欄位查詢,龐大 LOB 數據會嚴重拖慢查詢速度,且隨資料增長呈幾何級數惡化。
將低頻、大型欄位(LOB、大量 NULL 值)獨立至另一資料表,高頻核心欄位留在主表。兩表透過主鍵關聯。拆分後,依「規則一」將高頻主表置於高效能磁碟,低頻 LOB 表置於大容量儲存,實現存取效能與成本的最佳平衡。
補充:若 LOB 欄位確有頻繁存取需求,仍建議拆表,但將 LOB 表放置於高效能磁碟;拆分同時也能隔離備份影響——LOB 表空間可在離峰時段獨立備份,避免拖慢核心業務備份。
建表時指定三類數據存入不同表空間:
文本型長字段雖可建索引,但效率極低,且導致索引表空間膨脹。多年經驗表明:長字段加索引屬得不償失,應堅決避免。
DB2 採「表 → 表空間 → 資料庫」三級存儲。表空間配置直接決定資料庫效能,表映射是否合理,關乎整體運行效率。掌握上述規則,並結合實際業務靈活調整,方能打造高性能 DB2 環境。