十五、mysql 分区之 分区管理

1.mysql分区处理分区字段NULL值的方式

    1.range分区null被当作最小值处理

    2.list分区null值必须被枚举出来,否则将出错

    3.hash/key分区 null值当作0处理



2.RANGE && LIST 分区管理

    1.删除分区

        alter table emp drop partition p0; //删除emp的p0分区,注意也会同时删除该分区的数据

    2.增加分区

        alter table emp add partition (partition p5 values less than(5000));

        //不能增加已存在分区名的分区

        //range分区不能添加比目前最大分区的最大值小的分区,例如目前p4分区最大值为6000,那么p5添加成5000就会报错的

        //list分区不能添加已经在其他分区有枚举数据的分区,例如p4包含了'PHP'这个,那么P5就不能再包含'PHP'了

    3.重定义分区(range)

        alter table  emp reorganize partition p5 into (

            partition p5 values less than (3000),

            partition p6 values less than (4000),

            partition p7 values less than (5000)

        );

        //原本p5分区的最大值为5000,现在将p5拆分成p5,p6,p7 各存放一千

        //拆分分区只能拆成相邻,不能是p5,6,8...

        //拆分分区不能改变原本分区的模式,比如range不能拆成list

    4.重定义分区(list)

        alter table emp reorganize partition p4,p5,p6 into {

            partition p4 values in (1,2,3,4,5,6,7,8,9,10)

        );

        //比如之前的p4p5p6包含了1234567810这10个数字,那么现在全部归纳到p4中来

        //list不支持range的分区功能,但可以通过拆分跟添加来实现重分区



3.HASH && KEY 增加分区

    alter table emp coalesce partition 3; 给emp表删除2个分区 //注意会删除数据

    alter table emp add partition partitions 8 ;//增加8个分区

 

你可能感兴趣的:(mysql)