You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何快速导入50GB以上的大容量MySQL数据库.sql备份文件

MySQL 50GB+ 大体积SQL备份快速导入方案

导入前临时调整MySQL配置(核心提速项)

导入前先修改my.cnf(Windows系统为my.ini)配置,导入完成后回滚到原配置即可,可至少提升3-5倍导入速度:

  • 关闭事务自动提交:导入前执行set autocommit=0;,所有数据导入完成后统一执行commit;,避免单条语句频繁刷盘
  • 关闭非必要校验:
    • 执行set unique_checks=0;,跳过导入过程中的唯一性索引校验
    • 执行set foreign_key_checks=0;,跳过外键约束检查
  • 调整缓存与IO参数:
    • innodb_buffer_pool_size 调整为服务器可用内存的50%-70%,最大化数据缓存命中
    • innodb_log_file_size 调整到2GB-4GB,减少重做日志的刷盘频率
    • innodb_flush_log_at_trx_commit = 2,降低事务刷盘优先级,大幅提升写入效率
    • innodb_write_io_threads 调整为16-32(根据服务器CPU核心数适配,最高不超过64),提升IO写入并行度

优化导入执行命令

不要用默认的基础重定向导入,改用带性能参数的命令执行:

mysql -u root -p --default-character-set=utf8mb4 --max_allowed_packet=1G 目标数据库名 < 备份文件.sql

如果备份文件是单条INSERT语句格式,可以提前对SQL文件做预处理,将多条单INSERT合并为批量INSERT语句,可再提升2倍以上导入速度。
如果需要查看导入进度,可以安装pv工具后执行:

pv 备份文件.sql | mysql -u root -p 目标数据库名

更高性能的替代方案

如果还能访问原数据库,更推荐直接用物理备份方案替代逻辑SQL备份导入,速度可提升10倍以上,50GB数据通常1小时内即可完成恢复:

  • 用xtrabackup工具做物理热备份,直接复制InnoDB数据文件到目标服务器,不需要执行任何SQL语句
  • 若两台服务器的MySQL大版本完全一致,也可以停掉原库后直接复制原库的data目录到目标服务器对应路径,启动目标库即可自动识别数据,适合有停机维护窗口的场景

注意事项

  • 所有临时调整的配置项在导入完成后必须回滚到原配置,避免线上运行时出现数据丢失风险
  • 导入前确认目标库的字符集、排序规则和原库完全一致,避免导入过程中出现字符转换耗时或乱码问题

内容的提问来源于stack exchange,提问作者Armature

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:36:04