PHP SQLITE加载滞后
此代码在执行时会导致大量延迟。如果没有此位,则需要0.78秒。使用此代码,则需要6.87秒。是否有人可以指出延迟代码并为我提供消除此延迟的解决方案。非常感谢你的帮助 代码PHP SQLITE加载滞后,php,sqlite,lag,Php,Sqlite,Lag,此代码在执行时会导致大量延迟。如果没有此位,则需要0.78秒。使用此代码,则需要6.87秒。是否有人可以指出延迟代码并为我提供消除此延迟的解决方案。非常感谢你的帮助 代码 滞后于什么?运行查询?转储6行kajillion数据?或者是针对每个查询运行的可怕版本的extract()?你不应该像那样污染你的变量名称空间。嗨,马克,谢谢你的回复。我的表中记录不超过3000条。最确定的是查询。但是我如何消除这个问题。不要在循环中使用它?你正在运行一个基于其他查询结果的子查询。这意味着您正在运行3000+1
滞后于什么?运行查询?转储6行kajillion数据?或者是针对每个查询运行的可怕版本的extract()
?你不应该像那样污染你的变量名称空间。嗨,马克,谢谢你的回复。我的表中记录不超过3000条。最确定的是查询。但是我如何消除这个问题。不要在循环中使用它?你正在运行一个基于其他查询结果的子查询。这意味着您正在运行3000+1查询,只是为了执行此代码。重写为单个join
ed查询。由于您在子查询中嵌入了外部数据,所以您也很容易受到攻击,即使它只是一个简单的数字ID号。您是否为PDO编写了过程包装?
<?php
$row=0;
while ($r=$sth->fetch(PDO::FETCH_ASSOC)) {
$row++;
foreach($r as $k => $v) { ${$k} = $v; } // get all columns as variables
//print a table row
$sql="SELECT items.id i_id, status,manufacturerid,model,label,cpuno,corespercpu from items,item2soft ".
" where item2soft.itemid=items.id AND item2soft.softid={$r['id']}";
$sthi=db_execute($dbh,$sql);
$ri=$sthi->fetchAll(PDO::FETCH_ASSOC);
$nitems=count($ri);
$institems="";
$licitems=0;
for ($i=0;$i<$nitems;$i++) {
$rstatus=(int)$ri[$i]['status'];
if ($rstatus==1) { $attr="style='background-color:green;font-weight:bold;color:#efefef' title='Status: Stored'"; }
elseif ($rstatus==2) { $attr="style='background-color:red;font-weight:bold;' title='Status: Defective'"; }
elseif ($rstatus==3) { $attr="style='background-color:#cecece;font-weight:bold;' title='Status: Obsolete'"; }
else { $attr=" title='Status: In Use' "; }
$x=($i+1).": <span $attr >({$ri[$i]['label']}) </span>".$agents2[$ri[$i]['manufacturerid']]['title']." ".$ri[$i]['model'];
if ($i%2) $bcolor="#D9E3F6";
//if ($i%2) $bcolor="#ECF1FB";
else $bcolor="#ffffff";
$institems.="<div style='margin:0;padding:0;background-color:$bcolor'>".
"<a href='$scriptname?action=edititem&id={$ri[$i]['i_id']}'>$x</a></div>";
if (empty($lictype) || $lictype==0) { $licitems++; } //per box
elseif ($lictype==1) { $licitems+=$ri[$i]['cpuno']; } //per cpu
elseif ($lictype==2) { $licitems+=$ri[$i]['cpuno']*$ri[$i]['corespercpu']; } //per core
}