
1 自己写一个存储过程。这个存储过程的目的就是给分区表增加一个分区。
2 新建一个Job,设定每个月某个时刻调用你写的存储过程
这样就能达到你每月自动增加分区的需求。
ql代码#这里使用HASH表分区,mysql会根据HASH字段来自动分配数据到不同的表分区,这种情况适用于没有表分区规则但是有需要分表来进行查询优化的情况。这里根据id字段hash规则创建2个表分区
CREATE TABLE `creater_bak` (
`id` int(11) NOT NULL,
`name` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
PARTITION BY HASH(id) PARTITIONS 2
创建完成后开始导入原表数据:
Sql代码
insert into creater_bak select * from creater
导入以后的新表数据就是分布在不同的2个表分区中了。
如果数据量非常大,觉得预设的表分区数量太少,那么可以新增表分区,mysql会自动重新分配:
Sql代码
#这里新增8个表分区,加上新建表时候的2个,一共10个表分区了
ALTER TABLE `creater_bak` ADD PARTITION PA
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)