首頁 > 軟體

MySQL分割區之KEY分割區詳解

2022-04-14 10:04:13

介紹

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分割區:https://www.jb51.net/article/244269.htm

COLUMN分割區:https://www.jb51.net/article/96515.htm

LIST分割區:https://www.jb51.net/article/244256.htm

HASH分割區:https://www.jb51.net/article/244277.htm

KEY分割區:https://www.jb51.net/article/244282.htm

子分割區:https://www.jb51.net/article/244294.htm

指定各分割區路徑:https://www.jb51.net/article/244296.htm

分割區索引以及分割區介紹總結:https://www.jb51.net/article/244300.htm

總結

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

到此這篇關於MySQL分割區之KEY分割區的文章就介紹到這了,更多相關MySQL KEY分割區 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com