该表数据,仅最近14天左右数据会有更新操作,其余数据为统计查询;
原表创建时间用的timestamp,无法作为分区字段;
ID为主键;
[RDS信息]
数据库类型:MySQL 5.6;
CPU:8核;
最大连接数:8000;
最大IOPS:12000;
[解决思路]
创建新的分区表,与原表保持同样的结构,将创建时间类型改为datetime;
分批写入历史数据,每次1000万,大约7分钟时间;(查出最近14天会更新的最小ID,这批数据停机插入!)
停机插入最后的14天数据;
Rename表,重启服务;
insert my_table_temp select * from my_table where id>= 150000000 and id< 160000000;