0

我需要向 MySQL 中插入大约 3 亿条数据记录,我想知道我使用多进程来制作它是否有意义?

情况1:3亿条记录只插入一张表。

情况2:3亿条记录插入到多表中。

这两种情况的瓶颈是什么?

数据源是大约 800+ txt 文件。


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

4

1 回答 1

1

由于您有大量数据,请考虑使用LOAD DATA. 根据 mysql 文档,这是从文件中导入数据的最快方法。

LOAD DATA INFILE LOAD DATA INFILE 语句以非常高的速度
将文本文件中的行读入表。

INSERT 语句的速度
从文本文件加载表时,使用 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
于 2013-07-24T04:33:58.887 回答