mysqldump -extended-insert参数的使用
2016-07-05 15:53
274 查看
mysqldump 的 --extended-insert 表示长INSERT,多row在一起批量INSERT,提高导入效率,和没有开启 -e 的备份导入耗时至少相差3、4倍,默认开启;用--extended-insert=false关闭。强烈建议开启,
使用--extended-insert=false导出的表如下图这种,每行一个insert语句。
使用--extended-insert=true导出的表如下图这种,一个很长的insert语句。
下图是两种方式的导出数据库,可以看出--extended-insert=true的时候,耗时较少。因为我的这个库很小,所以两种方式对比起来不明显。
对于大型数据库,这2种方式的差距还是很大的。好在默认mysqldump就是启用--extended-insert=true参数的。
除了导出数据库时候这个参数会产生影响,导入的时候也是有影响的。直接看下图:
那么使用--extended-insert=false导出表是不是一无是处呢?并非如此。比如数据库中表中已经存在大量数据,那么再往表中导入数据时,如果出现主键数据冲突Duplicate key error,将会导致导入操作失败,但此时如果是使用--extended-insert=false导出表,导入时主键冲突的会报错Duplicate key error,但不冲突的数据仍然能正常导入。【个人感觉这个不常出现,因为我们每次导出都是加-B参数的,导出sql语句里面有DROP TABLE IF EXISTS `TABLE1`;】
参考博客:http://blog.csdn.net/hw_libo/article/details/39583247
使用--extended-insert=false导出的表如下图这种,每行一个insert语句。
使用--extended-insert=true导出的表如下图这种,一个很长的insert语句。
下图是两种方式的导出数据库,可以看出--extended-insert=true的时候,耗时较少。因为我的这个库很小,所以两种方式对比起来不明显。
对于大型数据库,这2种方式的差距还是很大的。好在默认mysqldump就是启用--extended-insert=true参数的。
除了导出数据库时候这个参数会产生影响,导入的时候也是有影响的。直接看下图:
那么使用--extended-insert=false导出表是不是一无是处呢?并非如此。比如数据库中表中已经存在大量数据,那么再往表中导入数据时,如果出现主键数据冲突Duplicate key error,将会导致导入操作失败,但此时如果是使用--extended-insert=false导出表,导入时主键冲突的会报错Duplicate key error,但不冲突的数据仍然能正常导入。【个人感觉这个不常出现,因为我们每次导出都是加-B参数的,导出sql语句里面有DROP TABLE IF EXISTS `TABLE1`;】
参考博客:http://blog.csdn.net/hw_libo/article/details/39583247
相关文章推荐
- mysql 源代码学习 博客 [lock..]
- mysqld with valgrind
- mysql无法启动
- mysql主从配置
- MySQL root密码重置 报错:mysqladmin: connect to server at 'localhost' failed的解决方案
- MYSQL事务终止时造成死锁
- MySQL 触发器简单实例
- mysql连接数据库
- Mysql
- mysql二进制包安装与配置实战记录
- hibernate自动键表报MySQL server version for the right syntax to use near 'type=InnoDB' at line 1
- mysql explicit_defaults_for_timestamp参数
- Mysql 5.7 主从配置
- mysql最大连接数
- MySQL递归查询树状表的子节点、父节点
- MySQL5.7 修改密码
- mysql(2)
- mysql mysql.user 数据库表
- mysql数据库千万级别数据的查询优化和分页测试
- mysql 密码修改