新手问题 MySQL 导入大 SQL 文件

easonlovewan · 2015年07月03日 · 最后由 anshen 回复于 2016年05月12日 · 4096 次阅读

想通过 sql 命令导入一个近 10G 的 sql 文件,用 source 命令感觉太慢,有没有好的办法

sed 做正则替换,减少 insert into 出现的次数。

不过建议不折腾,下班前输下命令,第二天早上无论如何都 OK 了,10 G 又没多大

#1 楼 @peter

可以用 sed 做更简单的 INSERT INTO -> INSERT DELAYED INTO

另外,还有下面的方法可以加快大数据批量导入速度:

  • 禁用索引
  • 禁用 binlog
  • innodb_flush_log_at_trx_commit 改为 0

导入完成后再将上面的改回来即可

#1 楼 @peter 嗯嗯,后来我也是这么干的

#2 楼 @leopku 赞!我一般会记得彬索引,其它的没注意过,我的数据也没大到楼主那个程度

10G 并不大,直接 mysql < x.sql 导入即可。

#6 楼 @msg7086 跟很多因素相关,而不仅仅是 dump 文件的大小 我遇到过 4、5G 大小的 dump 文件 8 小时没导完的 下班前果断 CTRL+C 并使用 extended inserts 模式重新导出再导入,下班到家登到服务器上一看已然导完。

对于正常的备份、数据迁移之类的,大家可以尝试打开 extended inserts 选项,操作简单恢复时却能节省非常多的时间

也找了各种资料总的来说还是用 source 命令来导入 sql 文件比较靠谱!感谢大家的参与😊

#7 楼 @leopku 是这样。 用合适的导出工具很重要。 mysqldump导出的文件就很漂亮。 (当然要比较新的版本,别说是 4.x 的就行)

我那破服务器,导入不到 4 个 G 的 sql 文件,居然用了 1 个多小时,我也是醉了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号