mysql快速导入导出数据库_mysql快速导出与导入

123119188_1_20180126090547268

前言:目前各种客户端越来越智能,数据库也随之越来越大,如果要做个什么数据库备份,如果数据库较小还好说,数据库随随便便几十个G,光导出就要耗费大量时间,更别说导入,那么有什么办法可以快速导出,导入呢?

1 mysql快速导出原理

mysql快速导出实际是利用了mysql导出时的sql语句,一般我们导出时sql语句可能是一条记录一个insert into语句。并且各种日志记录。而实际上我们是可以通过设置参数来决定一条insert into语句插入多条数据的,这也是一个我们快速导出的大的优化方向。

2 设置参数

首先要明白两个参数

--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;

--net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行

这两个参数就决定了你导出语句怎么写。不过此处我们需要注意参数值,这个参数值如果大于本身数据库值可能会出现导出错误,所以我们需要在此之前查询一下。

3 查询参数

由于mysql5.7后部分命令有所变化,查询命令如下:

mysql>show VARIABLES like '%max_allowed_packet%';

mysql>show VARIABLES like '%net_buffer_length';

4 导入命令

同样由于mysql5.7后安全验证机制变化,所以需要将数据库密码等加入到配置文件

[client]部分添加脚本:

host=localhost

user=数据库用户

password='数据库密码'

重启服务后生效执行导出命令即可

最后执行完整语句:

#mysqldump --defaults-extra-file=/etc/mysql/my.cnf 数据库 \

-e –-max_allowed_packet=4194304 –-net_buffer_length=16384 > 导出目录

通过以上数据的导出文件,大家可以打开看下,insert into语句是不是不再是一条记录了?本人亲测,原本需要2小时以上的导入数据现在只要1分钟就导入完成,是不是很棒呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值