本来,我的问题是有关的事实,phpMyAdmin的的SQL部分而不能正常工作。 正如评论所说,我意识到,这是输入量无法处理。 然而,这并没有给我提供的如何处理有文件一个有效的解决方案(在我的情况 - 35000个的记录行)(CSV)的格式:
...
20120509,126,1590.6,0
20120509,127,1590.7,1
20120509,129,1590.7,6
...
在phpMyAdmin导入选项挣扎,就像在SQL部分基本复制粘贴输入一样。 这一次,与上文相同的,它需要5分钟,直到最长执行时间被称为然后停止。 有趣的是寿,它增加了像6-7千的记录到表中。 因此,这意味着输入的实际经历和做几乎成功。 我也试过在文件中的数据减半的量。 然而,一切都没有改变。
很明显,现在有些不妥。 这是很烦人有在PHP脚本中的数据时播放简单的数据导入是不行的。
改变你的PHP上传最大尺寸。
你知道你的php.ini文件?
首先,尽量把这个文件到你的Web根目录:
phpinfo.php
(见http://php.net/manual/en/function.phpinfo.php )
含:
<?php
phpinfo();
?>
然后导航到http://www.yoursite.com/phpinfo.php
寻找“的php.ini”。
要上传大文件,你需要的max_execution_time,的post_max_size,upload_max_filesize的
另外,你知道你的error.log文件是什么? 这将有望给你一个线索什么错误。
编辑:
下面是我使用的文件导入查询:
$query = "LOAD DATA LOCAL INFILE '$file_name' INTO TABLE `$table_name` FIELDS TERMINATED BY ',' OPTIONALLY
ENCLOSED BY '\"' LINES TERMINATED BY '$nl'";
其中$ file_name是从PHP全局变量$ _FILES的临时文件名,$ table_name是已经进口编制表,$ NL是为CSV行结束到Windows行尾变量(默认值,但我有一个选项,选择linux行结局)。
另一件事是,该表($表名)在我的脚本事先由第一扫描准备CSV文件中确定列类型。 后它确定适当的列类型,它创建MySQL表以接收数据。
我建议你试试先创建MySQL表的定义,来匹配(数据类型,字符长度等),什么是在文件中。 然后尝试上面的查询,看看它运行的速度有多快。 我不知道有多少的因素MySQL的表定义是速度。
另外,我有没有在表中定义后,才将数据加载索引。 索引减慢数据加载。