MySQL用临时表造数据
采用临时表
创建临时数据表tmp_table
CREATE TABLE tmp_table (
id INT,
PRIMARY KEY (id)
);
用 python或者bash 生成 100w 记录的数据文件(python瞬间就会生成完)
python(推荐): python -c "for i in range(1, 1+1000000): print(i)" > base.txt
导入数据到临时表tmp_table中
mysql> load data infile '/Users/LJTjintao/temp/base.txt' replace into table tmp_table;
Query OK, 1000000 rows affected (2.55 sec)
Records: 1000000 Deleted: 0 Skipped: 0 Warnings: 0
千万级数据 20秒插入完成。
注意:
导入数据时有可能会报错,原因是mysql默认没有开secure_file_priv
(这个参数用来限制数据导入和导出操作的效果,例如执行LOAD DATA、SELECT … INTO
OUTFILE语句和LOAD_FILE()函数。这些操作需要用户具有FILE权限。)
解决办法:
在mysql的配置文件中(my.ini 或者 my.conf)中添加 secure_file_priv = Users/LJTjintao/temp/
, 然后重启mysql解决。