首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 分區表效能實測(三):分區與非分區查詢對比、垂直分區初探

     編輯:MySQL 資料庫相關知識

測試資料準備

透過預存程序向分區表 part_tab 寫入 800 萬筆測試資料(耗時 8 分 17 秒),再複製至非分區表 no_part_tab(耗時 51.59 秒)。

范圍查詢效能對比

表類型查詢時間說明
非分區表 no_part_tab38.30 秒全表掃描 800 萬列
分區表 part_tab3.88 秒僅掃描分區 p1(約 79 萬列)

效能提升約 90%,EXPLAIN PARTITIONS 確認僅存取單一分區。

EXPLAIN 執行計畫分析

非分區表

type: ALL
possible_keys: NULL
key: NULL
rows: 8000000
Extra: Using where

分區表

partitions: p1
type: ALL
possible_keys: NULL
key: NULL
rows: 798458
Extra: Using where

分區裁剪 讓掃描列數從 800 萬降至 80 萬,直接決定效能差異。

垂直分區觀察

原分區表含 c2 VARCHAR(30) 欄位,平常極少查詢。嘗試移除該欄位(垂直分區概念),查詢速度再獲 90% 提升。
啟示:即使 MySQL 5.1 內建水平分區,垂直分區(將冷熱欄位分離)在特定場景仍具高價值,需手動實作但收益顯著。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved