我有一个带有SQL指令'TRUNCATE和INSERT'的数组,该程序集是从txt文件中检索的。
截断和插入过程是在6个表上进行的,问题是其中一个表将接收110,000条记录。
我做了一些测试:
第1 http://pastebin.com/egbnbfVa
短语......错误:MySQL服务器已经消失
错误编号2006 ...
第二http://pastebin.com/tfF7ZaVd
这...... 500错误
答案 0 :(得分:1)
我认为你的脚本太长而无法执行。如果你不能优化你的脚本,请检查php日志并更改execution_time
答案 1 :(得分:1)
在这段代码中思考:
<?php
$configuration = array(
'mysql-user' => 'username',
'mysql-password' => 'password',
'mysql-host' => '127.0.0.1',
'mysql-database' => 'database',
);
$mysqli = mysqli_connect($configuration["mysql-host"], $configuration["mysql-user"], $configuration["mysql-password"], $configuration["mysql-database"]) or die("Error " . mysqli_error($link));
$mysqli->set_charset("utf8");
并在您的第二段代码中出现错误
ERROR:
for($i=0;i<count($sql_prod_s_saida_inARR);$i++)
正确:
for( $i = 0; $i < count($sql_prod_s_saida_inARR); $i++ )
一个建议,如果你有110k的记录,那就是部分地做出来的,例如10k的记录。
答案 2 :(得分:0)
您可以在脚本中设置时间限制。你可以使用它来将其设置为无限制:
set_time_limit ( 0 )
答案 3 :(得分:0)
主要原因还在于每次插入后表格将重新索引。 你可以通过交易来阻止这个,如果我是正确的,这将提高你的速度超过100倍:D