暂无图片
MySQL Shell 已崛起,mysqldump 请废弃!
最近更新:2023-03-14 08:55:18

a.png

概念描述

MySQL 8.0以后,对于MySQL DBA来说,一个不得不说的工具横空出世-MySQL Shell, 今天这里只讲MySQL Shell的 Utilities工具部分,且只讲MySQL Shell的导出导入功能,这个备份工具具有里程碑的意义,因为它强大到你可以安心放弃mysqldump了。

核心优势

1. 并行 Parallelization 默认4个线程进行导出或者导入数据,可根据情况自己定义: util.dumpInstance('/backup/mybackup',{threads:8}) util.loadDump("/backup/mybackup",{loadUsers: true,threads:8})

2. 分块 Chunking 默认开启,将每个表数据分成大小相等的数据文件,默认64兆一个文件,由参数bytesPerChunk控制,最小128k(针对那些小表,小于64兆的表)。 chunking:true 默认开启,不用设置。 bytesPerChunk:"64M" 默认64M,不用设置。

3. 压缩 Compression 默认开启压缩,压缩类型为时下最新的zstd压缩,另外还支持gzip压缩,zstd在压缩和解压之间获得了一个折中的平衡,既让压缩率很高的情况下还获得了一个快速的解压时间,相对比gzip压缩率高的情况下还要比gzip解压时间更短。 compression:"zstd" 默认开启,不用设置。

4. 输出格式 Output format MySQL Shell Utilities工具默认使用load data语句预期的默认格式进行数据导出和导入,这会让输出文件更小,同时导入速度也更加快速。 mysqldump,msqlpump,mydumper这三类导出工具都是以insert语句的形式导出数据, 这在速度上明显要落后于load data语句,官方文档中描述load data方式要比insert方式快20倍,具体描述请参考链接: https://dev.mysql.com/doc/refman/8.0/en/insert-optimization.html

5.优势总结:

......