mysql导入数据过慢 解决方法
程序员文章站
2022-07-11 22:32:27
...
mysql中用
mysql->use test;
mysql->set names utf8;
mysql->source D:/ceshi.sql
导入数据的时候 执行速度相当慢
“可以把EXCEL另存为csv 格式,然后用 load data 方法,这个比 insert 快”
这个方法没试
把innodb_flush_log_at_trx_commit这个参数改为0 然后重启数据库 应该比你原来速度快很多
这个可以
导出(备份):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语句,快了很多
mysql->use test;
mysql->set names utf8;
mysql->source D:/ceshi.sql
导入数据的时候 执行速度相当慢
“可以把EXCEL另存为csv 格式,然后用 load data 方法,这个比 insert 快”
这个方法没试
把innodb_flush_log_at_trx_commit这个参数改为0 然后重启数据库 应该比你原来速度快很多
这个可以
导出(备份):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语句,快了很多
上一篇: Python开发编码规范
下一篇: 笔记本摔后黑屏挽救实录!(多图)
推荐阅读
-
mysql快速导入导出数据
-
php将csv文件导入到mysql数据库的方法
-
SQL Server 2005/2008 导入导出数据常见报错解决方法
-
java实现批量导入.csv文件到mysql数据库
-
Python导入txt数据到mysql的方法
-
Python之csv文件从MySQL数据库导入导出的方法
-
mysql遇到load data导入文件数据出现1290错误的解决方案
-
PHPMYADMIN导入数据最大为2M的解决方法
-
SQL Server Management Studio Express管理器 没有导入导出数据的向导的解决方法
-
MySQL导入数据报 Got a packet bigger than‘max_allowed_packet’bytes 错误的解决方法