【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
MySQL导出的SQL语句在导入时有可能会非常非常慢,经历过导入仅45万条记录,竟用了近3个小时。在导出时合理使用几个参数,可以大大加快导 入的速度。
-e 使用包括几个VALUES列表的多行INSERT语法;
--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;
--net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。
注意:max_allowed_packet和net_buffer_length不能比目标数据库的设定数值 大,否则可能出错。
首先确定目标库的参数值
mysql>show variables like 'max_allowed_packet';
mysql>show variables like 'net_buffer_length';
根据参数值书写mysqldump命令,如:
E:\eis>mysqldump -uroot -p eis_db goodclassification -e --max_allowed_packet=1048576 --net_buffer_length=16384 >good3.sql
之前2小时才能导入的sql现在几十秒就可以完成了。
试验了一下,速度的确天翻地覆的快
不得不顶!!!!!!!!!
!!!!严重!!!!
经过测试发现,采用此方法导入会产生这么一个问题:
如果表中存在自动增长的字段,那么导入后的表中这个字段就没有自动增长了。
引用来自“招财猫”的帖子
!!!!严重!!!!
经过测试发现,采用此方法导入会产生这么一个问题:
如果表中存在自动增长的字段,那么导入后的表中这个字段就没有自动增长了。
经过检查,发现是我增加了 --skip-opt 参数的问题,干掉就可以了,哈哈
我本地导了一个2.6G的文件,机器是2G内存,跑的Debian 5,貌似物理内存吃满之前速度还不错,当物理内存使用率达到98%的时候就是无尽的等待了。我总共导入用了50多个小时。不知道红薯老大用了多大的数据测试的?
你试试我说的方法,原来50个小时,现在肯定半个小时以内。
红薯老大,我加了参数后,导入2小时还没结束!症状和之前一样,98%左右内存时候就及其缓慢了。我这里2000多个数据库。我还尝试了增加参数导出。。。,结果一个半小时还没导出完,放弃了。
引用来自“ghostbb”的帖子
红薯老大,我加了参数后,导入2小时还没结束!症状和之前一样,98%左右内存时候就及其缓慢了。我这里2000多个数据库。我还尝试了增加参数导出。。。,结果一个半小时还没导出完,放弃了。
哟!这真是怪事,上星期我对一台 Sun V440 的机器导压缩后1.2G 的数据,20分钟左右就ok了。
原来几乎花了一天。
你机器的配置方便介绍下否?
我觉得跟机器配置无关的,再差的机器性能提升都是上百倍的,如果你的不行,那是否应该检查一下有没有做对啊,或者漏掉什么。
另外你说有2000个数据库是什么意思啊?