2012-06-07 27 views
1

我想導入一個大的(65mb)CSV文件到SQL表中。我正在使用phpMyAdming和xampp。SQL導入大的CSV,內存不足錯誤

memory_limit = 6000M 
post_max_size = 128M 
upload_max_filesize = 128M 

當我嘗試這個,我得到錯誤「致命錯誤::內存(分配1852047360)(試圖分配262145個字節)在C:\ XAMPP的\ phpMyAdmin的我已經在php.ini改變以下設置\ libraries \ import.lib.php on line 294'

我能做些什麼來解決這個錯誤?我也想導入一個更大的數據庫。

回答

1

你能把文件分解成塊嗎?

+0

我試過這之前,我可以得到的memory_limit提出,它有一個類似的錯誤。我見過人們在線獲取大文件的工作,因爲我很快就不得不導入一個更大的CSV文件我想這個工作,所以我可以避免將文件分爲100件 – user1441453

+0

我只是再試一次,它仍然在運行在延長最大執行時間後內存不足 – user1441453

1

您可以編寫Python/PHP/Ruby腳本來讀取文件並解析數據,並逐行運行INSERT語句。

+0

我有一個編寫CSV文件的Java程序。出於某種原因,當我嘗試從java寫入表時,表需要大約17個小時才能創建,而對於我想創建的更大的表需要大約一個月的時間。我希望這會更快。我目前的數據庫是7列,一個10位數的int和6個2位數的整數,以及250萬行。我不知道爲什麼當我嘗試從java寫入它時需要這麼長時間 – user1441453

+0

那麼您可以構建一個大型查詢而不是每次寫入,這更多是我在想什麼。 – matchdav

+0

而另一個選項是BULK INSERT – matchdav