由于海量数据导致内部服务器错误?

时间:2016-03-30 16:00:13

标签: php mysql excel apache server

我有一个excel表,其中有数万个数据。 然后我构建一个mysql数据库并创建一个在excel表上具有相同字段的表。 但是当我使用Phpmyadmin或PHPExcel方式将数据插入数据库时​​,大约5分钟,它总是显示500内部服务器错误。 造成这种情况的原因是什么?数据是质量还是别的。 我的服务器是Apache + PHP 5.4n + mysql 5.5.40 (当然,我也改变了PHP和memory_limit上的max_excution_time)

1 个答案:

答案 0 :(得分:0)

以CSV格式转换您的Excel并阅读/使用LOAD DATA LOCAL INFILE

我复制/通过我自己的代码,但是让他适应你的需要

$dataload = 'LOAD DATA LOCAL INFILE "'.$filename.'"
                REPLACE
                INTO TABLE '.$this->csvTable.' CHARACTER SET "utf8"
                FIELDS TERMINATED BY "\t"
                IGNORE 1 LINES
            ';

$result = (bool)$this->db->query($dataload);

其中$ filename是CSV的本地路径(您可以使用dirname( FILE )来获取它)

此SQL命令非常快(添加/更新所有CSV只需1或2秒)

阅读文档,但当然您需要在用户表上使用uniq索引来“替换”作品。也许你不需要替换但只是插入,忘了这一行。