KEY分區和HASH分區相似,但是KEY分區支持除text和BLOB之外的所有數據類型的分區,而HASH分區只支持數字分區,KEY分區不允許使用用戶自定義的表達式進行分區,KEY分區使用系統提供的HASH函數進行分區。當表中存在主鍵或者唯一鍵時,如果創建key分區時沒有指定字段系統默認會首選主鍵列作為分區字列,如果不存在主鍵列會選擇非空唯一鍵列作為分區列,注意唯一列作為分區列唯一列不能為null。
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');
同樣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
本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須注明文章來源,且在文章開頭明顯處給明鏈接。
《歡迎交流討論》