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解决。

posted @ 2022-02-22 21:33  Hnoss  阅读(473)  评论(0编辑  收藏  举报