美文网首页
mysql分区之list分区

mysql分区之list分区

作者: 无崖老师 | 来源:发表于2020-03-11 21:56 被阅读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()中也可以直接指定字段,但是这个字段一定要是整数.

    相关文章

      网友评论

          本文标题:mysql分区之list分区

          本文链接:https://www.haomeiwen.com/subject/nmzhjhtx.html