首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL KEY 分區實戰範例(五)

     編輯:MySQL 綜合教學

KEY 分區特性

  • 類似 HASH 分區,但由 MySQL 內部哈希函數計算,不支援自定義運算式。
  • 支援一或多欄位,欄位型別不限(HASH 僅支援整數運算式)。
  • 分區鍵可為非主鍵/唯一鍵欄位。

建表示例

CREATE TABLE t_key (
    id INT NOT NULL,
    name VARCHAR(20),
    created_at DATETIME
) ENGINE=InnoDB
PARTITION BY KEY(created_at)
PARTITIONS 4;

驗證分區分佈

INSERT INTO t_key VALUES
(1, 'a', '2023-01-01'),
(2, 'b', '2023-02-15'),
(3, 'c', '2023-03-20'),
(4, 'd', '2023-04-10');

SELECT TABLE_NAME, PARTITION_NAME, TABLE_ROWS
FROM INFORMATION_SCHEMA.PARTITIONS
WHERE TABLE_NAME = 't_key';

適用場景

  1. 分區鍵為非整數型別(日期、字串)。
  2. 不想手動維護 HASH 運算式。
  3. 需平均分佈資料,且無明確範圍/列表邏輯。

注意事項

  • MySQL 5.1+ 支援,5.7+ 效能優化顯著。
  • 分區數建議為 2 的冪次(2, 4, 8, 16),利於哈希均勻。
  • 查詢需帶分區鍵條件才能觸發 Partition Pruning。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved