MySQL 大数据量文本插入
导入几万条数据需要等好几分钟的朋友来围观一下!
百万条数据插入,只在一瞬间。呵呵夸张,夸张!! 不到半分钟是真的!
插入指令: load data infile 'c:/wamp/tmp/Data_OutFile.csv' replace into table data_1 character set utf8 fields terminated by ',' enclosed by '"' lines terminated by '\r\n' (name,age,description );
指令说明:
replace into table data_1 :指 在表data_1中插入数据时,碰到相同的数据怎么处理。replace是替换。也可以使用ignore,指不处理本条数据。
character set utf8: 使用字符集 utf8。
fields terminated by ',' : 字段之间使用英文逗号隔开。
Enclosed By '"' :内容包含在双引号内。
lines terminated by '\r\n' :每条数据以\r\n结尾。
(name,age,description )是可选的,当不写的时候,就是所有字段。如果数据与数据库的字段不对应的时候,需要填写,以使字段对应
运行的时候,如果不注意文件路径,可能会报: ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 错误。
原因是mysql 默认对导出的目录有权限限制,也就是说使用命令行进行导出的时候,需要指定目录进行操作;
解决办法:
查询mysql 的my.ini文件的secure_file_priv 值配置的是什么。一般你的导入导出的文件需要放在这个文件夹下!当然你也可以修改这个值。
文件导出:
Select * From data_1 Into OutFile 'c:/wamp/tmp/Data_OutFile.csv' character set utf8 fields terminated by ',' enclosed by '"' lines terminated by '\r\n' ( name,age,description );
这是文件导入导出最快的方法。