我需要在MySQL中插入大约3亿条数据记录,我想我是否会使用多进程来制作它?
情况1 :只有300万条记录插入到一个表格中。
情境2 :300万条记录插入多个表格。
这两种情况有哪些瓶颈?
数据源大约有800多个txt文件。
我知道有一个命令LOAD DATA INFILE
,我只想了解这个问题。 :d
答案 0 :(得分:1)
由于您有大量数据,请考虑使用LOAD DATA
。它是根据mysql文档从文件导入数据的最快方法。
<强> LOAD DATA INFILE 强>
LOAD DATA INFILE语句将文本文件中的行以非常高的速度读取到表 。<强> Speed of INSERT Statements 强>
从文本文件加载表时,请使用LOAD DATA INFILE。 这是 通常比使用INSERT语句快20倍。见章节 13.2.6,“LOAD DATA INFILE语法”。
...
加载数据的INSERT仍然比LOAD DATA INFILE 慢得多,即使使用刚刚概述的策略也是如此。
LOAD DATA INFILE '/path/to/your/file.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n' -- or '\r\n'
IGNORE 1 LINES; -- use IGNORE if you have a header line in your file