一、情况介绍
需要处理的文件是一个3.41G的csv格式文件,现在需要把它导入数据库,进行后续处理和分析。
二、导入数据
该文件数据量庞大,无法用excel或者editplus++之类普通软件打开,于是借用了pandas的方法查看了表的结构:
方法一:navicat客户端导入
1.首先建立表字段
2.选择表-右击-导入向导
3.根据向导,设置导入类型、位置、编码、分隔符、字段名行和首行、格式、文件字段可表字段匹配等选项。
但是这个方法导入数据太慢,大约1个小时,导入不到500w条数据。因此需要寻找更快的方法。
方法二:使用load data infile语句导入
直接运行load data infile语句,会报错:The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
需要修改secure-file-priv 路径
1.首先查看文件允许导入导出的路径
2.找到文件my.ini,查看secure file priv路径是否与之相同,若不同则修改文件路径,或者直接把路径改成空,允许其他路径文件导入:
3.重启服务
4.使用load data infile语句导入,大约花了10~20分钟就将100,150,807条数据全部导入完毕。
三、抽取数据
1.由于数据量太大,语句执行缓慢,且存储空间容易被临时文件占满,如图:
2.为了能在本地顺利运行,将抽取5%数据存入新表,但是表溢出报错:
3.解决的方法是修改size,如图
4.创建新表成功