使用MySQL导入亿级数据:load data local infile

使用MySQL命令load data local infile导入亿级数据

需求

研究车联网,手中有一个16G左右的数据,为了能够方便处理数据,需要将数据存入MySQL中

解决方案

1、使用 Navicat

1、先建表 2、导入向导,选择源文件的格式

导入小数据速度还可以,但是尝试导入亿级数据时,粗略计算需要一星期(最终放弃)

2、使用load data local infile

1、先建表 2、管理员启动cmd ,启动 mysql

mysql -u root -p --local-infile=1

3、使用 load data local infile 命令导入数据

load data local infile "文件/位置" into table 数据库名.表名 fields terminated by 分隔符;

例如 文件路径 / ,最好不要存在中文

load data local infile "D:/koln.txt" into table cologne.koln1 fields terminated by  ;

遇到的问题1:ERROR 1148 (42000)

ERROR 1148 (42000): The used command is not allowed with this MySQL version

解决办法

查看 local_infile 的设置是否为off(分步执行下面命令;然后重启mysql)一定要重新启动 查看 local_infile 的状态

SHOW GLOBAL VARIABLES LIKE local_infile;

如果是off,使用命令设置为on

SET GLOBAL local_infile = ON;

再次确认是否设置成功

SHOW GLOBAL VARIABLES LIKE local_infile;

然后重启mysql,再执行载入数据命令

3、结果

3.5亿的数据,五个小时左右

经验分享 程序员 微信小程序 职场和发展