测试前提
1.数据量:2000万
2数据大小:1.1G
3.字段数量:3
4.字段长度:10
5.字段主键:id
6.系统配置:虚拟机centos6.8,虚拟内存 1G,CPU 1核
1.新建分区
mysql > alter table table_name partition by range(id)(
partition part_name_1 values less than (5000001),
partition part_name_2 values less than maxvalue
);
耗时:6分16.88秒 2000万数据
2.重置分区
例如合并两个不常用的旧分区,或者把一个很大的分区再拆分成两个分区
mysql > alter table_name reorganize partition part_name into (
partition part_name_1 values less than (10000001),
partition part_name_2 values less than (15000001),
partition part_name_3 values less than maxvalue
);
耗时:3分37.55秒 1500万数据
3.清空分区数据
mysql > alter table table_name truncate partition part_name;
耗时:0.27秒
清空分区数据,保留分区
4.删除分区
mysql > alter table table_name drop partition part_name;
耗时:0.10秒
分区和数据一起被删除
5.查看分区
mysql > show create table table_name \G;
查看建表语句,同时可以查看分区清空
6.取消分区
mysql > alter table table_name remove partitioning;
耗时:3分45.07秒 1500万数据
取消分区之后回到未分区状态,但是数据不会丢失。