2

我有一个巨大的逗号分隔值 (CSV) 文件,我需要将其导入 mysql 数据库。

文件大小为 7 GB,我机器上的内存大小为 4.00 GB ..

我尝试使用“LOAD DATA LOCAL INFILE”SQL 命令加载它,但已经超过 12 小时,它仍在运行!

我认为应该做的想法是:

  1. 创建一个程序,逐行读取文件并将它们逐行插入到数据库中。
  2. 将 CSV 文件分解成许多其他较小的 CSV 文件(可能是 200 Mb),并使用“LOAD DATA LOCAL INFILE”将它们中的每一个加载到数据库中

您认为将如此大的文件导入 MySQL 是否有更好、更有效的方法?

4

1 回答 1

1

[所以你可以将 Q 标记为已关闭 - 我得到了一些分数!]

删除索引应该会有所帮助。

(虽然我很惊讶它有这么大的帮助。我猜 MySQL 无法将整个索引保存在内存中,这看起来很奇怪,因为它应该小于数据。)

于 2013-05-22T12:32:22.407 回答