• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MySQL数据库迁移快速导出导入大量数据

    数据库迁移是我们经常可遇到的问题,对于少量的数据,迁移基本上不会有什么问题。生产环境中,有以下情况需要做迁移工作:

    MySQL迁移通常使用的有三种方法:

    1、数据库直接导出,拷贝文件到新服务器,在新服务器上导入。

    2、使用第三方迁移工具。

    3、数据文件和库表结构文件直接拷贝到新服务器,挂载到同样配置的MySQL服务下。

    第一种方案的优点:会重建数据文件,减少数据文件的占用空间,兼容性最好,导出导入很少发生问题,需求灵活。缺点:使用传统导出导入时间占用长。

    第二种方案的优点:设置完成后传输无人值守,自动完成。缺点:不够灵活,设置繁琐,传输时间长,异常后很难从异常的位置继续传输。

    第三种方案的优点:时间占用短,文件可断点传输,操作步骤少。缺点:新旧服务器中MySQL版本及配置必须相同,可能引起未知问题。

    假如数据库迁移是因为业务瓶颈或项目改造等需要变动数据表结构的(比如分区分表),我们便只能使用第一种方法了。

    使用MySQL的SELECT INTO OUTFILE 、LOAD DATA INFILE快速导出导入数据

    LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中。MySQL官方文档也说明了,该方法比一次性插入一条数据性能快20倍。

    当用户一前一后地使用SELECT ... INTO OUTFILE LOAD DATA INFILE 将数据从一个数据库写到一个文件中,然后再从文件中将它读入数据库中时,两个命令的字段和行处理选项必须匹配。否则,LOAD DATA INFILE 将不能正确地解释文件内容。

    下面是一个项目的例子,MySQL由windows平台迁移到Linux平台,数据总量12G

    Windows平台导出数据:

    tables.txt是保存数据表名称的文件,通过从文件中读取数据表名称,循环导出所有表:如果过程中摄及到分表,可根据分表规则修改导出的sql语句和批处理代码,非常灵活。

    @echo off  setlocal enabledelayedexpansion
    for /f %%i in (tables.txt) do ( set table=%%i
     echo "dump table -- !table! --"
     mysql -uroot -p12345678 codetc_old -e "SELECT * INTO OUTFILE 'F:/MySQL/Uploads/!table!.txt' FIELDS TERMINATED BY ',' FROM !table!"
    )
    pause

    Linux平台导入数据:

    #!/bin/bash
    while read line
    do
        mysql -uroot -p12345678 codetc_new -e "LOAD DATA INFILE '/var/lib/mysql-files/$line.txt' INTO TABLE $line FIELDS TERMINATED BY ','"
    done  tables.txt

    数据导入之前需在新机器上创建表结构,12G的数据导出用时3分钟左右,导入用时4分钟左右(执行时间根据机器的配置会有所不同,不具有参考价值)

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    您可能感兴趣的文章:
    • MySQL数据库迁移data文件夹位置详细步骤
    • Mysql的数据库迁移到另一个机器上的方法详解
    • oracle数据库迁移到MySQL的方法总结
    • mysql数据库迁移至Oracle数据库
    • mysql Innodb表空间卸载、迁移、装载的使用方法
    • 关于MySQL数据迁移--data目录直接替换注意事项的详解
    • 浅析mysql迁移到clickhouse的5种方法
    • mysql5.5数据库data目录迁移方法详解
    • mysql 备份与迁移 数据同步方法
    • 一次mysql迁移的方案与踩坑实战记录
    上一篇:MySQL数据库列的增删改实现方法
    下一篇:优化InnoDB表BLOB,TEXT列的存储效率
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    MySQL数据库迁移快速导出导入大量数据 MySQL,数据库,迁移,快速,