如何提高执行效率

WBOY
发布: 2016-06-23 14:19:27
原创
982 人浏览过

for($i=0; $i<count($r); $i++)	{		$var = explode(" ,",$r[$i]);		$barcode = $var[0];		$num = $var[1];		$sql = "insert into `".$t."`(barcode,num) values('".$barcode."','".$num."')";		echo $sql.'<br />';		mysql_query($sql);	}
登录后复制


一共有6000多条记录,如果每条记录都执行insert into,消耗时间很长,超过默认的90s。有无方法提高执行效率?


回复讨论(解决方案)

报错信息:
Maximum execution time of 90 seconds exceeded

可以把要插入数组先写入到数组,最后统一插入

for($i=0; $i<count($r); $i++)	{		$var = explode(" ,",$r[$i]);		$barcode = $var[0];		$num = $var[1];		$sql[] = "('".$barcode."','".$num."')";//写入到sql数组	}mysql_query('insert into `'.$t.'`(barcode,num)  values '.implode(',',$sql));//统一插入
登录后复制
登录后复制

报错信息:
Maximum execution time of 90 seconds exceeded

时间超时可以在头上面加上
set_time_limit(0);
?>

可以把要插入数组先写入到数组,最后统一插入

for($i=0; $i<count($r); $i++)	{		$var = explode(" ,",$r[$i]);		$barcode = $var[0];		$num = $var[1];		$sql[] = "('".$barcode."','".$num."')";//写入到sql数组	}mysql_query('insert into `'.$t.'`(barcode,num)  values '.implode(',',$sql));//统一插入
登录后复制
登录后复制


试过了,还是很慢。我还是试试set_time_limit(0)吧。谢谢!

如何还是慢,肯定是获取$r慢,才6000行,一般情况应该很快才对!

如何还是慢,肯定是获取$r慢,才6000行,一般情况应该很快才对!
我贴出代码,麻烦你帮我看看。

$file = 'upload/NGFile.txt';
$str  = file_get_contents($file) or die("文件打开失败");
$r = explode("\r\n",$str);

估计是打开NGFile.txt慢
现在社会已经是硬件来适应软件了
搞台好的服务器,就搞定了

估计是打开NGFile.txt慢
现在社会已经是硬件来适应软件了
搞台好的服务器,就搞定了
thx

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板