2013-05-22 65 views
2

我有我需要導入到mysql數據庫逗號分隔值(CSV)的一個巨大的文件..導入龐大無比的CSV文件到MySQL

的文件大小爲7 GB,以及內存大小我的機器是4.00 GB ..

我試圖加載它使用「LOAD DATA LOCAL INFILE」SQL命令,但它已超過12小時,它仍在運行!

,我認爲可能應該做的想法是要麼:

  1. 創建一個程序,按行讀取文件中的行,並通過排它們插入到數據庫行。
  2. 打破CSV文件導入了一些其他的CSV文件尺寸較小(可能是200 MB),並使用「LOAD DATA LOCAL INFILE」

你認爲有可能他們每個人加載到數據庫成爲一個更好,更高效的方法來將這麼龐大的文件導入到MySQL中?

+0

@Sam爲什麼他們會是更快? –

+0

你的意思是超過15小時是正常的嗎? –

+0

不,我想知道爲什麼gui客戶會讓事情變得更快。我不知道應該花多長時間。什麼是限制速度?你是否內存不足,或者在磁盤上等待?或在100%的CPU?你有沒有在桌子上定義的任何鍵?什麼是模式?您使用什麼操作系統? –

回答

1

[所以,你可以標記將q爲已關閉 - 我獲得一些積分!]

刪除索引應該有所幫助。

(雖然我很驚訝它幫助了這麼多。我想的MySQL不能在內存中保存整個索引,這似乎很奇怪,因爲它應該比數據小。)