extended-insert对mysqldump及导入性能的影响

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:
参数说明:
-e, --extended-insert,长INSERT,多row在一起批量INSERT,提高导入效率,和没有开启 -e 的备份导入耗时至少相差3、4倍,默认开启;用--extended-insert=false关闭。强烈建议开启,通过下面的测试比较就会明白为什么了。
一、默认方式导出,也即--extended-insert=true

[root@localhost ~]# time mysqldump -S /tmp/mysql3307.sock -uroot -p'Zhkj@554996' --single-transaction --extended-insert=true -B -A >testdump.sql
Warning: Using a password on the command line interface can be insecure.
real    0m12.965s
user    0m6.579s
sys    0m1.080s
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# time mysqldump -S /tmp/mysql3307.sock -uroot -p'Zhkj@554996' --single-transaction  -B -A >1testdump.sql
Warning: Using a password on the command line interface can be insecure.
real    0m13.385s
user    0m6.545s
sys    0m1.171s

二、采用参数--extended-insert=false导出全库:

[root@localhost ~]# time mysqldump -S /tmp/mysql3307.sock -uroot -p'Zykj@554996' --single-transaction --extended-insert=false -B -A >2testdump.sql
Warning: Using a password on the command line interface can be insecure.
real    0m16.216s
user    0m8.820s
sys    0m1.282s

三、对比到处的sql文件的大小不一样:

[root@localhost ~]# du -sh testdump.sql  1testdump.sql 2testdump.sql 
414M    testdump.sql
414M    1testdump.sql
550M    2testdump.sql

四、对比恢复到数据库所用的时间:
[root@localhost ~]# time mysql -uroot -p -S /tmp/mysql3307.sock < testdump.sql 
Enter password: 
real    3m34.245s
user    0m9.018s
sys    0m0.361s
[root@localhost ~]# time mysql -uroot -p -S /tmp/mysql3307.sock < 2testdump.sql 
Enter password: 
real    46m51.702s
user    0m44.712s
sys    0m35.717s


经过上面的一比较,发现导入速度相差非常多。

但是使用--extended-insert=false导出表也有好处

比如数据库中表中已经存在大量数据,那么再往表中导入数据时,如果出现主键数据冲突Duplicate key error,将会导致导入操作失败,但此时如果是使用--extended-insert=false导出表,导入时主键冲突的会报错Duplicate key error,但不冲突的数据仍然能正常导入。


 本文转自 wjw555 51CTO博客,原文链接:http://blog.51cto.com/wujianwei/1959493


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
关系型数据库
Pg库增加&修改字段
Pg库增加&修改字段
128 0
|
7月前
|
SQL Oracle 关系型数据库
SQL CREATE INDEX 语句- 提高数据库检索效率的关键步骤
SQL CREATE INDEX 语句用于在表中创建索引。 索引用于比其他方式更快地从数据库中检索数据。用户无法看到索引,它们只是用于加速搜索/查询。 注意: 使用索引更新表比不使用索引更新表需要更多的时间(因为索引也需要更新)。因此,只在经常进行搜索的列上创建索引。
80 5
|
SQL 安全 关系型数据库
MySQL 务下 truncate 和 delete 的差异|学习笔记
快速学习 MySQL 务下 truncate 和 delete 的差异
MySQL 务下 truncate 和 delete 的差异|学习笔记
|
SQL 分布式计算 Hadoop
Apache Hive--DML--insert&amp;多重插入&amp;动态分区| 学习笔记
快速学习Apache Hive--DML--insert&amp;多重插入&amp;动态分区
201 0
Apache Hive--DML--insert&amp;多重插入&amp;动态分区| 学习笔记
|
监控 关系型数据库 MySQL
测试开启MySQL performance_schema后对性能的影响
在开启MySQL PerformanceSchema 性能收集功能的情况下,对数据库性能影响
10031 1