承接前文,我們在分區表 part_tab 中移除 VARCHAR 欄位 c2 後,查詢效能再獲 90% 提升:
ALTER TABLE part_tab DROP COLUMN c2;
-- 800 萬筆資料,耗時 42.20 秒
SELECT COUNT(*) FROM part_tab
WHERE c3 > '1995-01-01' AND c3 < '1995-12-31';
-- 僅 0.34 秒,僅掃描單一分區
結論:資料表設計時應審視每個欄位是否真正被查詢使用,移除無關欄位可大幅降低 I/O 與記憶體壓力。
INFORMATION_SCHEMA.PARTITIONS 表記錄分區中繼資料。比一般表多出以下操作:
ADD PARTITION
DROP PARTITION
COALESCE PARTITION
REORGANIZE PARTITION
ANALYZE PARTITION
CHECK PARTITION
OPTIMIZE PARTITION
REBUILD PARTITION
REPAIR PARTITION
合理的分區設計能同時提升查詢效能、簡化資料存留/歸檔管理,減輕 DBA 負擔。詳細技術文件請參考: