mysql中mydumper 和 mysqldump 对比使用

发布时间 - 2026-01-11 01:13:13    点击率:

如果只是备份几张表或单个库, 相比 innobackup 而言, mysqldump 和 mydumper 更为方便, 不过 mydumper 增加了相对较多的特性, 比如多线程备份, 正则匹配备份, 分组和自检等功能. 另外 mydumper 和 mysqldump 本质上是一样的导出逻辑数据, 不支持在线热备 innodb. 当然我们也可以使用 innobackup 备份部分表数据, 但是它和 mydumper 和 mysqldump 不是一类备份方式, 所以下文只测试 mydumper 和 mysqldump 之间的使用.

mydumper 导出

使用 mydumper 工具以 8 个线程导出 test(9.4G) 的数据, 并压缩, 如下所示:
mydumper -B test --regex 'test.*' -c -e -G -E -R --use-savepoints -h 10.0.21.5 -u root -P 3301 -p xxxxxx -t 8 -o /data/mysql_bak/

在目录 /data/mysql_bak 里, 库中的每个表都保存为表定义和数据两个文件.

整体执行时间如下, 一共耗时 123s

# cat metadata 
Started dump at: 2017-05-19 10:48:00
SHOW MASTER STATUS:
  Log: mysql-bin.000406
  Pos: 2165426
  GTID:(null)

SHOW SLAVE STATUS:
  Host: 10.144.127.4
  Log: mysql-bin.000419
  Pos: 506000361
  GTID:(null)

Finished dump at: 2017-05-19 10:50:03

mysqldump 导出

使用默认的 mysqldump 工具导出该库并压缩, 如下所示:

# time mysqldump -B test -E -R -h 10.0.21.5 -u root -P 3301 -p | gzip >/data/test.sql.gz
Enter password: 

real  3m19.805s
user  4m47.334s
sys 0m10.395s

real 一行显示 mysqldump 整个运行的时间为 199.8s

总结

整体上看, 由于数据不多, mysqldump 和 mydumper 时间相差并不大, 大多的时间都消耗在数据传输层面, 如果库足够大的话, mydumper 的优势就能体现出来. 另外低版本的 mydumper 由于高版本 MySQL 语法的变更, 会存在导出错误的问题, 比如出现下面错误:

** (mydumper:18758): CRITICAL **: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' 
at line 1 (1064)

处理这种问题可以使用高版本的 mydumper , 如果高版本还有这个问题可以参考 github 官方代码做相应代码修改.


# mysqldump  # mydumper  # mysql  # mysqldump使用方法  # PHP定时备份MySQL与mysqldump语法参数详解  # mysqldump加-w参数备份数据时需要注意的事项  # mysqldump数据库备份参数详解  # MySQL5.7 mysqldump备份与恢复的实现  # MySql使用mysqldump 导入与导出方法总结  # MySQL之mysqldump的使用详解  # docker 使用mysqldump命令备份导出项目中的mysql数据  # MySQL数据迁移使用MySQLdump命令  # 详解 linux mysqldump 导出数据库、数据、表结构  # 详谈mysqldump数据导出的问题  # mysqldump备份数据库时排除某些库的实例  # 浅谈mysqldump使用方法(MySQL数据库的备份与恢复)  # mysqldump你可能不知道的参数  # 可以使用  # 所示  # 就能  # 不多  # 执行时间  # 这个问题  # 较多  # 上看  # 时间为  # 不支持  # 几张  # 等功能  # 本质上  # 多线程  # 保存为  # 库中  # 增加了  # 是一样的  # 并不大  # brush 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JavaScript模板引擎Template.js使用详解  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  如何用AI帮你把自己的生活经历写成一个有趣的故事?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  C++时间戳转换成日期时间的步骤和示例代码  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  如何用wdcp快速搭建高效网站?  如何快速生成可下载的建站源码工具?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  简单实现Android文件上传  开心动漫网站制作软件下载,十分开心动画为何停播?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel如何使用Blade模板引擎?(完整语法和示例)  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  如何在局域网内绑定自建网站域名?  黑客如何利用漏洞与弱口令入侵网站服务器?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  🚀拖拽式CMS建站能否实现高效与个性化并存?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  JS碰撞运动实现方法详解  动图在线制作网站有哪些,滑动动图图集怎么做?  如何快速搭建高效简练网站?  如何做网站制作流程,*游戏网站怎么搭建?  三星网站视频制作教程下载,三星w23网页如何全屏?  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  大同网页,大同瑞慈医院官网?  活动邀请函制作网站有哪些,活动邀请函文案?  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  再谈Python中的字符串与字符编码(推荐)  深圳网站制作平台,深圳市做网站好的公司有哪些?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  个人网站制作流程图片大全,个人网站如何注销?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  微信小程序 require机制详解及实例代码  如何批量查询域名的建站时间记录?  jQuery中的100个技巧汇总  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  零服务器AI建站解决方案:快速部署与云端平台低成本实践