这期内容当中小编将会给大家带来有关怎么实现MyISAM分区表迁移及合并,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
dyn_change_yyyymm 是一张按照日期(字段time_d)分区的表(myisam),只有insert,select操作。
2016年3月份起结构如下:
CREATE TABLE `dyn_change_201603` (
`time_d` int(8) NOT NULL COMMENT '帐期',
`id` char(32) NOT NULL COMMENT '业务标识',
`content` text COMMENT '内容',
`create_time` int(11) NOT NULL COMMENT '时间',
KEY `idx_id` (`id`),
KEY `idx_create_time` (`create_time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='动态数据记录表'
在不影响insert的情况下,需要将dyn_change_201603迁移到新环境下。
步骤如下:
1)假设当前日期为:2016年3月30日,对应分区dypt_20160330,新环境创建dyn_change_201603表(非分区表)。insert 操作可以移到新环境下;
2)将老环境下的表dyn_change_201603 重命名为: dyn_change_201603_old;
3)到mysql的数据目录下,将dyn_change_201603_old的数据文件&&索引文件scp到新环境对应的路径下面。[注:dyn_change_201603_old此时的对应数据&&索引文件不同与dyn_change_201603的数据&&索引文件]
4)然后交换dyn_change_201603,dyn_change_201603_old表名。交换后,90%以上的数据都在dyn_change_201603表,而少部分数据在dyn_change_201603_old(只在分区dypt_20160330 中);
dyn_change_201603接受当前insert操作;
5)然后导出dyn_change_201603_old 的dypt_20160330分区的数据(仅有少量数据),可以导出dyn_change_201603_30.csv文件;
6)然后将dyn_change_201603_30.csv的数据导入dyn_change_201603;
7)alter table dyn_change_201603 analyze partition dypt_20160330。
[注:此时可在insert操作较少的时间 or 暂停insert 操作]。
迁移合并完成。
上述就是小编为大家分享的怎么实现MyISAM分区表迁移及合并了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。