mysqlpump的性能测试(r12笔记第89天)

Wesley13
• 阅读 289

  在MySQL 5.7中做逻辑备份恢复有了一个新的工具mysqlpump,如果你掌握了mysqldump,那么使用mysqlpump就是分分钟的事情,因为很多参数都是很相似的,可以理解它是mysqldump的加强版,一个亮点就是有了并行的选项,使得数据备份的性能更加强大。

  有一点值得说明的是,为了保证数据一致性,我们一般备份都会使用--single-transaction的选项,在5.7.11以前,mysqlpump和并行参数是有冲突的,在这个版本之后做了修复。

  但是mysqlpump到底怎么样呢,我在5.7.17的版本中做了一些简单的测试,可以看出一些性能的差异。

   为了尽可能保证导出的数据备份能够占用少的磁盘空间,我们经常会使用gzip来压缩,我们就分了几个场景来对比压缩,不压缩,开启并行后的数据备份的性能差异。

   我选取的数据集大小在30G左右。含有5个数据库,单表数据量在200万以上,单库的表数量在10个以上。

   得到的一个基本测试结果如下,后续的测试结果会一并补上。

option

real

idle%

dump_size(byte)

compress=false

6m52.232s

85.92

26199028017

compress=false|gzip

43m12.574s

90.72

12571701197

compress=true

19m24.541s

80.48

26199028017

compress=true   |gzip

43m12.515s

84.94

12571200219

parallelism=4 

5m30.005s

76.43

26199028017

parallelism=4   |gzip

42m41.433s

90.51

12575331504

parallelism=8

4m44.177s

66.73

26199028017

可以看到默认来说,导出一个30G左右的dump需要近7分钟,而启用了并行之后,并行度为4的时候,导出时间是5分半,提升了1.5分钟(20%),并行度为8之后提升了2分钟左右(30%)。而在系统层面做了压缩的时候,压缩率达到了近48%。还是相当不错的。在compress=true只是在服务端客户端交互中使用数据包压缩,最后的备份集大小是没有任何改变的。后续会测试使用不同的压缩算法,备份的性能差异。

个人微信公众号,欢迎扫码关注。

mysqlpump的性能测试(r12笔记第89天)

本文分享自微信公众号 - 杨建荣的学习笔记(jianrong-notes)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
基于mysqldump聊一聊MySQL的备份和恢复
前言Hi,大家好,我是麦洛,今天我们聊聊MySQL的备份和恢复,在下面文章中,你会了解到MySQL常见的备份类型,以及基于mysqldump命令在日常开发中如何做
Wesley13 Wesley13
2年前
RMAN备份恢复
1介绍RMAN是RecoveryManager的缩写,为Oracle的恢复管理器,是Oracle数据库推荐提供的一种恢复和备份数据库的工具,也是数据库管理员管理数据库常用的工具之一。它是物理备份,而EXP是逻辑备份它可以实现一致性备份,非一致性备份,增量备份,而exp且做不到很多第三方的工具也是调用rman的脚本来实现备份功能,如赛门铁克,NBU
Wesley13 Wesley13
2年前
MySQL运维之
1、mysqldump备份一个数据库mysqldump命令备份一个数据库的基本语法:mysqldumpuuserppwddbnameBackup.sql我们来讲解一下备份的文件都包含了什么?\MySQLdump10.13Distrib5.5.20,forWin32(x86)\
Wesley13 Wesley13
2年前
MySQL备份与恢复(3)mysqldump备份多个库
一、mysqldump的工作原理、    利用mysqldump命令备份数据的过程,实际上就是把数据从mysql库以逻辑的sql语句的形式直接输出或生成备份的文件的过程    利用这个备份文件恢复的时候的原理?就是把备份的sql命令再执行一遍。二、备份多个库mysqlshowdatabases;
Wesley13 Wesley13
2年前
mysql的全量备份与增量备份
mysql的全量备份与增量备份全量备份:可以使用mysqldump直接备份整个库或者是备份其中某一个库或者一个库中的某个表。备份所有数据库:\root@my~\mysqldumpurootp123456alldatabases/opt/all.sqlmysqldump:\Warning\Usinga
Wesley13 Wesley13
2年前
Java备份MySQL
1概述使用java备份mysql数据库,主要是使用mysqldump与Runtime().getRuntime().exec().2创建备份路径如果没有备份的存储路径首先创建路径.PathpathPaths.get(xxxx);try{Files.createDi
Wesley13 Wesley13
2年前
mysql Backup &recovery
如果您要在MySQL数据库中存储任何您不想丢失的内容,那么定期备份数据以保护数据免受损失非常重要。本教程将向您展示两种简单的方法来备份和恢复MySQL数据库中的数据。您还可以使用此过程将数据移动到新的Web服务器。从命令行备份(使用mysqldump)(https://www.oschina.net/action/GoToLink?urlh
Wesley13 Wesley13
2年前
mysql 数据备份和还原
1.使用mysqldump命令备份使用root用户备份test数据库下的person表mysqldumpurootptestpersonD:\backup.sql1.备份多个数据库语法:mysqldumpuusernamepdatabasesdbname2dbname2
Wesley13 Wesley13
2年前
MySQL定时备份数据库
一、MySQL数据备份1.1、mysqldump命令备份数据在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法:MySQLdump常用m
Wesley13 Wesley13
2年前
mysqldump 逻辑备份和物理备份
逻辑备份逻辑备份是备份sql语句,在恢复的时候执行备份的sql语句实现数据库数据的重现。工具:mysqldump特点:1、可移植性比较强2、备份和恢复的花费时间长,不适用于大型业务系统物理备份物理备份就是备份数据文件了,比较形象点就是cp下数据文件,但真正备份的时候自然不是的cp这么简单。工具:xtraba