介紹
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 本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結。 《歡迎交流討論》 |