我使用多进程将数据插入MySQL是否有意义?

时间:2013-07-24 03:18:35

标签: mysql io multiprocessing

我需要在MySQL中插入大约3亿条数据记录,我想我是否会使用多进程来制作它?

情况1 :只有300万条记录插入到一​​个表格中。

情境2 :300万条记录插入多个表格。

这两种情况有哪些瓶颈?

数据源大约有800多个txt文件。


我知道有一个命令LOAD DATA INFILE,我只想了解这个问题。 :d

1 个答案:

答案 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