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四个不同的分区.
分区创建成功之后,查看文件信息
注意这里分为四个去,有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两个分区,注意观察数据的月份
注意:chun和dong两个分区,分别放入了数据.这就说明我们的分区生效了.
总结
1 list分区就是根据分区条件,将数据分为若干区,也会生成相应的数据文件.
2 这个list()中也可以直接指定字段,但是这个字段一定要是整数.