十五、mysql 分区之 分区管理

时间:2023-03-08 16:11:32
十五、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个分区