Mysql的分割槽

2021-08-20 19:44:21 字數 1728 閱讀 7345

mysql資料庫在5.1版本開始支援分割槽,分割槽的過程是將乙個表或索引分解為多個更小、更可管理的部分。

分割槽有兩種:

range分割槽

create

table r(

id int

)engine=innodb

partition by range(id)(

partition p0 values less than(10),

partition p1 values less than(20)

);

這裡用r表的id欄位進行分割槽,id小於10的行放入p0分割槽,大於等於10小於20的行放入p1分割槽。

list分割槽

create

table r(

a int,

b int

)engine=innodb

partition by list(b)(

partition p0 values less than(1,3,5,7,9),

partition p1 values less than(0,2,4,6,8)

);

b等於1,3,5,7,9的行將放入p0中,b等於0,2,4,6,8的行將放入p1中。

hash分割槽

create

table t_hash(

a int,

b datetime

)engine=innodb

partition by hash(year(b))

partitions 4;

以上建立了乙個hash分割槽的表,分割槽按照日期列b進行

key分割槽

create

table t_key(

a int,

b int

)engine=innodb

partition by

key(b))

partitions 4;

key分割槽和hash分割槽相似,不同之處在於hash分割槽使用使用者自定義的函式進行分割槽,而key分割槽使用mysql資料庫提供的函式進行分割槽。

columns分割槽

range,list,hash,key分割槽都有相同的限制:資料必須是整數,如果不是整數就需要通過函式轉化為整數。而columns分割槽可以看成是range分割槽和list分割槽的一種進化,不但可以直接使用非整數進行分割槽(支援int,smallint,tinyint,bigint,date,datetime,char,varchar,binary,varbinary型別),還支援用多個列進行分割槽

create

table rcx(

a int,

b int,

c char(3),

d int

)engine=innodb

partition by range columns(a,b,c)(

partition p0 values less than(5,10,'ggg'),

partition p1 values less than(10,20,'mmm'),

partition p2 values less than(15,30,'sss'),

partition p3 values less than(maxvalue,maxvalue,maxvalue)

);

如果表中存在主鍵或唯一索引,那麼用於分割槽的字段必須是唯一索引的乙個組成部分

mysql分割槽邊 mysql分割槽

檢視資料庫版本是否支援分割槽 分割槽的四種型別 range分割槽 範圍分割槽,根據某個欄位的值來進行分割槽,某個連續的區間來進行區分 建立表時分區create table teacher id varchar 20 not null name varchar 20 age varchar 20 bi...

mysql 分割槽的作用 MySQL分割槽的優點

mysql分割槽有多種模式,而且在mysql5.1中,支援水平分割槽,下面就為您介紹5個常見的mysql分割槽模式,希望對您有所幫助。mysql5.1中最激動人心的新特性應該就是對水平分割槽的支援了。這對mysql的使用者來說確實是個好訊息,而且她已經支援分割槽大部分模式 range 範圍 這種模式...

mysql 的分割槽

使用過oracle的分割槽 create table partition by list field value alter table truncate add partition.查了一下mysql的分割槽功能,mysql只有在5.1版本以後才支援分割槽 mysql的分割槽與oracle的分割槽...