将非常大的CSV文件导入MySQL

时间:2013-05-22 09:36:18

标签: mysql csv bigdata

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

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

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

我认为可能应该做的想法是:

  1. 创建一个逐行读取文件并逐行将它们插入数据库的程序。
  2. 将CSV文件分解为许多其他较小尺寸(可能是200 Mb)的CSV文件,并使用“LOAD DATA LOCAL INFILE”将每个文件加载到数据库中
  3. 您认为可能有更好,更有效的方法将这么大的文件导入MySQL吗?

1 个答案:

答案 0 :(得分:1)

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

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

(虽然我很惊讶它帮助了很多。我猜MySQL无法将整个索引保留在内存中,这似乎很奇怪,因为它应该小于数据。)