mysql表在线转成分区表_mysql普通表变成分区表导入导出

该博客介绍了如何在MySQL环境中进行数据迁移,包括确认主键、去除重复主键、统计表数量、导出与导入数据、创建分区表以及使用shell脚本进行文件分割和批量导入。整个过程详细且实用,适用于大规模数据处理场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:tidb、linux

1、先确认主键、创建分区表(用于代替原表)

SELECT column_name FROM INFORMATION_SCHEMA.`KEY_COLUMN_USAGE` WHERE table_name=‘wpt_dzxx_chdzb_20200813‘ AND constraint_name=‘PRIMARY‘;

2、去除原表重复主键的行

3、统计原表总数

select count(1) from wpt_dzxx_chdzb; --29883575

4、导出表

mysqldump -h 192.168.1.4 -P 4000 -u root -ppassword rkw_ezc_prod wpt_dzxx_chdzb >wpt_dzxx_chdzb.sql

5、清空要导入的表

truncate table wpt_dzxx_chdzb_20200813

6、替换表名称

sed -i ‘s/wpt_dzxx_chdzb/wpt_dzxx_chdzb_20200813/g‘ wpt_dzxx_chdzb.sql

7、分成小文件 并清理第一个删除前面的drop命令

删除文档的第一行 sed -i ‘1d‘ wpt_dzxx_chdzb.sql

删除文档的最后一行 sed -i ‘$d‘ wpt_dzxx_chdzb.sql

split -l 200 wpt_dzxx_chdzb.sql -d -a 3 wpt_dzxx_chdzb_20200813

8、执行导入

-- 生成导入脚本

for i in `ls`

do echo ‘nohup mysql -h 192.168.1.4 -P 4000 -u root -D rkw_ezc_prod -ppasswd /tmp/dump1/‘$i ‘2>&1 &‘

done

--建目录执行导入

mkdir /tmp/dump1

原文:https://www.cnblogs.com/wukc/p/13511934.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值