mysql快速导入多个大csv文件

时间:2024-03-27 10:06:33

mysql快速导入多个大csv文件
本文纯属是为了做下笔记,加深印象,顺便分享经验罢了。
首先,根据自己需要导入的文件,编写一个sql脚本
我这里需要导入45个大csv文件,总大小是8个G,文件目录:D:\tmcsv
mysql快速导入多个大csv文件
sql文件代码:
LOAD DATA INFILE ‘D:\tmcsv\sblc_1.csv’ INTO TABLE tm_process FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘"’ lines terminated by ‘\r\n’ IGNORE 1 LINES( reg_no, class_id, apply_title, apply_status, date, apply_no);
LOAD DATA INFILE ‘D:\tmcsv\sblc_2.csv’ INTO TABLE tm_process FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘"’ lines terminated by ‘\r\n’ IGNORE 1 LINES( reg_no, class_id, apply_title, apply_status, date, apply_no);
…这里省略3-44,读者自己脑部吧…
LOAD DATA INFILE ‘D:\tmcsv\sblc_45.csv’ INTO TABLE tm_process FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘"’ lines terminated by ‘\r\n’ IGNORE 1 LINES( reg_no, class_id, apply_title, apply_status, date, apply_no);
用txt文件编写,另存为load.sql文件

sql语句语法解释:
LOAD DATA INFILE 加载文件
‘D:\tmcsv\sblc_45.csv’ 文件目录路径
FIELDS TERMINATED BY ‘,’ 指定字段分隔符
INTO TABLE tm_process : 插入+表名
OPTIONALLY ENCLOSED BY ‘"’ 认为双引号中的是一个独立的字段。Excel 转 CSV 时,有特殊字符(逗号、顿号等)的字段,会自动用双引号引起来
LINES TERMINATED BY ‘\n’ 指定行分隔符,注意,在 Windows 平台上创建的文件,分隔符是 ‘\r\n’
IGNORE 1 LINES:忽略第一行,第一行是字段名的可以加
( reg_no, class_id, apply_title, apply_status, date, apply_no) 对应的表字段名

然后,创建数据表tm_process,根据csv的字段自己创建。

最后:
1、打开cmd命令工具,进入mysql
mysql -u root -p
2、设置参数(关键)
set sql_log_bin=OFF;//关闭日志
set autocommit=0;//关闭autocommit自动提交模式
3、使用数据库
4、use 数据库名;
5、开启事务
START TRANSACTION;
6、引入sql文件
source 文件的路径;(sql文件目录路径) 例如: source d:/tmcsv/load.sql; 回车

结果:
mysql快速导入多个大csv文件
可以看出速度非常非常的快啊。
对比下工具输入命令导入:
mysql快速导入多个大csv文件