1. 程式人生 > >mysql 分割槽--list分割槽

mysql 分割槽--list分割槽

list 分割槽
根據具體數值分割槽,每個分割槽數值不重疊,使用PARTITION BY LIST、VALUES IN關鍵字。跟Range分割槽類似,不使用COLUMNS關鍵字時List括號內必須為整數字段名或返回確定整數的函式。
區別在於LIST分割槽是基於列值匹配一個離散值集合中的某個值來進行選擇。

LIST分割槽通過使用“PARTITION BY LIST(expr)”來實現,其中“expr”是某列值或一個基於某個列值、並返回一個整數值的表示式,然後通過“VALUES IN (value_list)”的方式來定義每個分割槽,其中“value_list”是一個通過逗號分隔的整數列表

比如現在有20個蘋果手機的專賣店 ,分佈在四個有經銷權的地區,

地區 商店ID號

北京 3,5,6,9,17
上海 1,2,10,11,19,20
深圳 4,12,13,14,18
廣州 7,8,15,16

create table staff_list(
id int not null,
name varchar(30),
store_id int not null default 0
)
partition by list(store_id)(
partition pbeijing values in (3,5,6,9,17),
partition pshanghai values in (1,2,10,11,19,20),
partition pshenzhen values in (4,12,13,14,18),
partition pguangzhou values in (7,8,15,16)
);

insert into staff_list values (1,‘tom’,21);