• 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

  • 相关阅读:
    常用查询mysql
    java Scanner
    存储过程
    使用IDEA打jar包
    创建一个jmeter的外部jar包
    关于jmeter
    Anaconda
    IDEA中使用IdeaVim
    爬虫之scrapy框架
    爬虫之图形验证码识别技术
  • 原文地址:https://www.cnblogs.com/GO-NO-1/p/9922354.html
Copyright © 2020-2023  润新知