共计 2066 个字符,预计需要花费 6 分钟才能阅读完成。
本篇文章给大家分享的是有关怎样对比 mysqlpump 和 mysqldump 的性能,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。
昨天测试了一下 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 个以上。
数据备份的测试结果
数据备份的测试场景自己做得多一些,当然备份层面的压缩暂时还没有测完整,其它的场景
optionrealidle%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
以上就是怎样对比 mysqlpump 和 mysqldump 的性能,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。