(转载)Mysql导入数据相当慢


转:http://blog.csdn.net/tylai520/article/details/6204365


导入数据的方法

导出(备份):mysqldump -u 用户名 -p databasename >exportfilename

导入(还原):方法一 mysql -u 用户名 -p databasename

方法二 进入MySQL数据库控制台 use 数据库名,之后:source importfilename

导入数据非常慢
将JQ1中的方案导出,然后导入到JQ2的中(导出的数据文件有90M)。上面两种方法都使用了,但是没有成功,或者说是十分慢(估计1,2天才能完成)。

解决办法(十几分钟可以导完):

查看JQ2的mysql参数:
show variables like 'max_allowed_packet';
show variables like 'net_buffer_length';
两个结果分别是:1047552 和 16384

从JQ1上导出数据:
mysqldump -uroot -pXXX 方案名 --skip-opt --create-option --set-charset --default-character-set=gbk -e
--max_allowed_packet=1047552 --net_buffer_length=16384 > 导出的文件路径和文件名

注意:max_allowed_packet和net_buffer_length不能比目标数据库的设定数值大,否则可能出错。

-e 使用包括几个VALUES列表的多行INSERT语法;
--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;
--net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。

也就是此参数指定了一个缓存区的大小,用来存放用户发送的SQL语句。若接收的SQL语句大于这个缓存区,则自动增加大小,直到max_allowed_packet

将导出的数据导入至JQ2中
./mysql -uroot -pXXX --default-character-set=gbk 方案名<导出的文件路径和文件名
这样导入相当于每次执行多条sql语句,快了很多


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值