题记:
因业务需要,需将一些用户记录进行汇总并上传到指定平台。需要先将指定时间的所有用户记录进行汇总。涉及到了大数据量的数据导入导出。
使用 iINTO OUTFILE 和 LOAD DATA LOCAL INFILE 实现了改功能,记录一下
步骤:
- 1 将源数据导出(select * from
test_table
ORDER BY createtime into outfile ‘E:\temp\test.txt‘;)
- 2 将源数据筛选后导入(LOAD DATA LOCAL INFILE ‘E:\temp\test.txt‘ INTO TABLE test_table_sort (@c1,c2,c3,...,c14,c15);)
注意:
- 1 需要先开启文本导出权限
- 1 show global variables like ‘%secure%‘; //查询设置
- 2 将 secure_file_priv 值赋值为 ""
- 2 导入数据报错 (The used command is not allowed with this MySQL version)原因除了是mysql版本过低外,最有可能是因为设置禁止远程导入文件,所以navicat执行导入报错。可以在本机上cmd连接mysql后再执行。解决!
- 3 导入时可用 @变量名 指定某列值不导入;
Mysql超百万数据的导入导出