mysqldump 导出的sql文件导入时慢的优化

导入使用source 命令是单线程导入,top -H观察单核cpu已经接近100%。

1、寻找多线程导出导入工具

方案一

http://seanlook.com/2016/11/17/python-mysqldump-out-in-concurrency-magic/

https://github.com/seanlook/mypumpkin

表级多并发,对我单一表4亿数据不好用

方案二 mydumper

https://blog.imdst.com/mysqlduo-xian-cheng-bei-fen-gong-ju-mydumper-2/

应该可以加速,但这个需要用这个工具重新导出,我已经用mysqldump导出了,不用了

 

2、优化mysql的参数提升导入速度

参考https://yq.aliyun.com/ziliao/22681

注释掉binlog 和replaylog 参数关闭binlog和replaylog

将innodb_flush_log_at_trx_commit这个参数改为0

测试导入速度提升5倍

还可以通过mysqldump分别调出库结构和数据,先创建库结构,然后删除大表的索引,然后再导入数据,后补充索引的方式进一步优化。

 

3、可以考虑写一个脚本解析mysqldump导出的sql文件,遇到insert时就开启多线程导入,如果不是,则走单线程。有时间在弄

参考http://liyangliang.me/posts/2017/02/load-data-into-mysql-using-python-multiprocessing/

© 2018, 新之助meow. 原创文章转载请注明: 转载自http://www.xinmeow.com

0.00 avg. rating (0% score) - 0 votes
点赞