联系信息

mysql百万数据导入导出

2022-11-21 16:18 By 致远 483
当前位置: 企业网站建设 > MySql > mysql百万数据导入导出

一直以来我都是做一些企业站,没什么大数据,很多知识点也欠缺,够用就行……直到前几天需要处理近百万条数据(80+w),从本地导出正常,到了服务器端,导入就遇到麻烦了:

第一次直接用Navicat for mysql进行的,忘了具体开始时间,但第二天早晨我看的时候才导入70%……

于是开始查资料,找方法……试了很多,发现一个显快的:

#cmd登入mysql
SET GLOBAL foreign_key_checks=0;
SET GLOBAL unique_checks=0;
SET GLOBAL innodb_flush_log_at_trx_commit=0;
SET GLOBAL sync_binlog=0;
use 表;
set names utf8;
source e:/xxx.sql;

#执行完毕后恢复设置
SET GLOBAL foreign_key_checks=1;
SET GLOBAL unique_checks=1;
SET GLOBAL innodb_flush_log_at_trx_commit=1;
SET GLOBAL sync_binlog=1;

#比Navicat或直接source快很多

比Navicat导入要快一些,但还是很慢的,半小时导入了差不多10万条……反正不急,继续找方法,重新导入。于是找到了这个,还不错:

1、修改my.ini加入secure_file_priv='';后重启mysql

2、导出数据到txt:select * from gk_jzs ORDER BY id asc into outfile 'E:/jzs.txt';

3、先在目标数据库建立相同表结构的数据表,导入数据LOAD DATA LOCAL INFILE 'E:/jzs.txt' INTO TABLE gk_jz;

非常快,百万条数据的导入只需十几秒

mysql百万条数据导出导入

遗憾的是,在创建表结构的时候最好不要建立索引,尤其是全文索引,否则还是很慢的。导入完成之后再重新建立索引,百万条的全文索引创建还是很慢的……总之,还是慢,不知道怎么才能更快一点,是否把那个数据表文件复制过去可行吗?

© 致远 2022-11-21,原创内容,转载请注明出错:mysql百万数据导入导出

留下您的评论

>