让 mysqldump 变成并发导出导入的魔法

2016-12-01 13:00:32 +08:00
 seanlook

mydumper 和 mysqlpump 在特定场景下会有些限制,于是自己用 python 封装 mysqldump ,实现以多线程的方式导出库表的操作,再以 mysql 命令多线程导入新库,用于成倍加快导出,特别是导入的速度。这一切只需要在 mysqldump 或 mysql 命令前面加上 mypumpkin.py 即可。

Github 项目地址 https://github.com/seanlook/mypumpkin

介绍和使用见 http://seanlook.com/2016/11/17/python-mysqldump-out-in-concurrency-magic/

2896 次点击
所在节点    Python
5 条回复
xi_lin
2016-12-01 13:15:02 +08:00
veelog
2016-12-01 13:18:16 +08:00
有没有可以限制 mysqldump 速度的??现在执行 sqldump 整个数据库操作非常慢
seanlook
2016-12-01 13:44:41 +08:00
@veelog 限流这个倒蛮新颖的,我这个工具一开起来基本上能把带宽或磁盘打满,源数据库 IO 会特别高。

mydumper 可以做到表上的多并发,可以每次 select chunk sleep 几毫秒来实现...
seanlook
2016-12-01 13:45:11 +08:00
@xi_lin 欢迎提建议...
julyclyde
2016-12-02 15:34:22 +08:00
限流(不基于数据语义)可以用 pv 工具

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/324550

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX