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个分区