2012-06-07 31 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