mysql分区之list分区

2020-03-11  本文已影响0人  无崖老师

list分区的语法

.....partition by list()(
partition 分区名称 values in(值1,值2,值3)
);
list分区,类似于sql的in语法,只要插入的数据符合条件的都会被放到这个分区中.

情景设置

需要指定的每个分区数据的存储条件。分区的字段一定要是主键!按照生日中的月份,分成春夏秋冬四个分区。

下面新建一个list_1表,

create table list_1(
   id mediumint unsigned auto_increment not null,
   birthday date,
   primary key (id,birthday) 
)engine=MyISAM partition by list(month(birthday))(
partition chun values in(3,4,5),
partition xia values in(6,7,8),
partition qiu values in(9,10,11),
partition dong values in(12,1,2)
 );
这里month()为月份函数,提取插入的数据的月份,根据月份然后放入chun,xia,qiu,dong四个不同的分区.
图片.png

分区创建成功之后,查看文件信息


图片.png

注意这里分为四个去,有chun,xia,qiu,dong四个分区文件,看上去就像是四个独立的表,但其实在外面依旧是一张表.

插入数据测试

insert into list_1 values(null,'1992-05-20');
insert into list_1 values(null,'1993-03-20');
insert into list_1 values(null,'1993-04-20');
insert into list_1 values(null,'1993-12-20');
插入的数据分别是chun和dong两个分区,注意观察数据的月份
图片.png

注意:chun和dong两个分区,分别放入了数据.这就说明我们的分区生效了.

总结

1 list分区就是根据分区条件,将数据分为若干区,也会生成相应的数据文件.
2 这个list()中也可以直接指定字段,但是这个字段一定要是整数.

上一篇下一篇

猜你喜欢

热点阅读