MySQL KEY分區


介紹

KEY分區和HASH分區相似,但是KEY分區支持除text和BLOB之外的所有數據類型的分區,而HASH分區只支持數字分區,KEY分區不允許使用用戶自定義的表達式進行分區,KEY分區使用系統提供的HASH函數進行分區。當表中存在主鍵或者唯一鍵時,如果創建key分區時沒有指定字段系統默認會首選主鍵列作為分區字列,如果不存在主鍵列會選擇非空唯一鍵列作為分區列,注意唯一列作為分區列唯一列不能為null。

 

 

一、常規KEY

1.創建分區

CREATE TABLE tb_key (
    id INT ,
    var CHAR(32) 
)
PARTITION BY KEY(var)
PARTITIONS 10;
SELECT PARTITION_NAME,PARTITION_METHOD,PARTITION_EXPRESSION,PARTITION_DESCRIPTION,TABLE_ROWS,SUBPARTITION_NAME,SUBPARTITION_METHOD,SUBPARTITION_EXPRESSION 
FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA=SCHEMA() AND TABLE_NAME='tb_key';
INSERT INTO tb_key() VALUES(1,'星期一'),(2,'1998-10-19'),(3,'new'),(4,'非常好'),(5,'5');

二、LINEAR KEY

同樣key分區也存在線性KEY分區,概念和線性HASH分區一樣。

1.創建分區

CREATE TABLE tb_keyline (
    id INT NOT NULL,
    var CHAR(5)
)
PARTITION BY LINEAR KEY (var)
PARTITIONS 3;

三、分區管理

key分區管理和hash分區管理是一樣的,只能刪除和增加分區,這里不再做詳細介紹。

1.刪除2個分區

ALTER TABLE tb_key COALESCE PARTITION 2;

2.增加三個分區

ALTER TABLE tb_key add PARTITION partitions 3;

四、移除表的分區

ALTER TABLE tablename
REMOVE PARTITIONING ;

注意:使用remove移除分區是僅僅移除分區的定義,並不會刪除數據和drop PARTITION不一樣,后者會連同數據一起刪除

 

 

分區系列文章: 

RANGE分區:http://www.cnblogs.com/chenmh/p/5627912.html

LIST分區:http://www.cnblogs.com/chenmh/p/5643174.html

COLUMN分區:http://www.cnblogs.com/chenmh/p/5630834.html

HASH分區:http://www.cnblogs.com/chenmh/p/5644496.html

子分區:http://www.cnblogs.com/chenmh/p/5649447.html

指定各分區路徑:http://www.cnblogs.com/chenmh/p/5644713.html

分區建索引:http://www.cnblogs.com/chenmh/p/5761995.html

分區介紹總結:http://www.cnblogs.com/chenmh/p/5623474.html

總結

 KEY分區和HASH分區類似,在處理大量數據記錄時能有效的分散數據熱點。

 

 

 

備注:

    作者:pursuer.chen

    博客:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須注明文章來源,且在文章開頭明顯處給明鏈接。

《歡迎交流討論》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM