Mysql上千万数据迁移方案

Mysql上千万数据迁移方案

最近由于项目问题,单表数据过多(6000w+)导致查询变慢,所以进行数据表分表,那么分表就意味着数据分发迁移,千万级别数据如何更快迁移呢?

当然首先我是用的代码方式进行,分页方式查询数据,批量添加在对应的数据库表。但是随着分页数越来越大,发现查询的速度越来越慢。如下图 查询100w过后需要1分多钟,这样得话要等到猴年马月。
在这里插入图片描述
后面我对分页进行优化,使用子查询方式,但是到了几百万过后 依然很慢。接着我就开始在网上找更好的方案。最后采用了Mysql 自带得Load data,2000多万耗时一共用了30分钟左右(建议创建得表先不要创建索引,会影响导入速度)
在这里插入图片描述
导入(可以跟查询条件在tablename后):

SELECT * INTO OUTFILE '/var/lib/mysql-files/data.txt' FIELDS TERMINATED BY ',' FROM t_tablename;  

导入:

LOAD DATA INFILE '/var/lib/mysql-files/data.txt' INTO TABLE t_tablename FIELDS TERMINATED BY ',';
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值