MySQL 大表备份、改表

0、背景:

需要对一个千万行数据的表新增字段,具体操作:

a、dump 数据

b、delete 数据

c、alter 表

 

MySQL  版本为5.5,alter表时MySQL会锁表;表行数虽多,当数据较少,每行数据平均2KB。

 


1、dump 数据

注意:

默认会锁表,需要增加参数 --skip-opt -q

单个dump文件太大需要调整配置: max_allowed_packet(单次最大传输量)

-w 后可添加dump 筛选条件

mysqldump --skip-opt -q -uroot -ppwd -hlocalhost databasename table_name -w "" 

我使用脚本处理,条件是按表某日期字段分割

(附shell时间转换:date -d "2017-04-30 00:00:00" + %s)

结果:同时处理了两个表,数据21G,耗时15h


2、delete 数据

delete from table_name where xxx;

删除了900W行数据,耗时50min


3、alter 表

alter table table_name  xxx;

修改180W行数据,耗时8min


4、数据恢复

mysql -uroot -ppwd database_name < dump_file

转载于:https://www.cnblogs.com/GO-NO-1/p/9922354.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值