前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql pump和mysql dump的性能大比拼(r12笔记第90天)

mysql pump和mysql dump的性能大比拼(r12笔记第90天)

作者头像
jeanron100
发布2018-03-21 16:30:25
1.3K0
发布2018-03-21 16:30:25
举报

昨天测试了一下mysqlpump,今天来把剩下的补充完成,算是一个小的系列。

mysqlpump

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

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

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

而mysqldump是大家最耳熟能详的工具了,如果没用过,都不好意思说自己会MySQL,这样一个工具和Oracle里的exp工具一般,经典而且功能丰富。

测试环境说明

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

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

数据备份的测试结果

数据备份的测试场景自己做得多一些,当然备份层面的压缩暂时还没有测完整,其它的场景

option

real

idle%

dump_size(byte)

mysqlpump

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

parallelism=8 |gzip

42m50.417s

90.38

12574079375

parallelism=16

5m19.060s

90.38

26199028017

parallelism=16 |gzip

42m50.939s

89.65

12577618359

parallelism=32

5m10.220s

89.23

26199028017

parallelism=32 |gzip

45m47.022s

89.7

12577618359

mysqldump

compress=false

9m19.785s

87.33

26176062499

compress=false |gzip

43m23.036s

90.97

12524413896

compress=true

37m42.052s

90.1

26176062499

compress=true |gzip

43m17.755s

85.89

12524413896

compress=true

38m55.968s

90.22

26176062499

compress=true |gzip

43m1.672s

85.77

12524413896

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

系统层面压缩备份的情况

如果备份不通过gzip管道来压缩,而是直接生成备份压缩,效率如果呢。一个26G左右的备份,gzip压缩的时间大概是43m18.974s,其实还真不短,比预想的长多了。

数据导入效率

数据的导入,我就简单测试了两个场景,mysqlpump并行备份导出,导入,mysqldump备份导出导入

mysqlpump

export parallelism=4

7m

import

85m4.574s

mysqldump

export

9m8.420s

import

97m9.760s

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档