您的位置:首页 > 编程语言 > PHP开发

php程序优化

2017-07-28 13:56 190 查看
1、不要在循环里查询数据库

弊端:用户体验差,增加数据库的并发量

如果有100个订单,那就要循环100次,即使每次查询只要0.01s,100次也有1s了。

在循环里面查询数组实例

$backData = [];
foreach($orderList as $key=>$value){

$new = $value;

$product = new mProduct();

$pInfo = $product->getInfoById($value['pID']);

$image = '';

if($pInfo){
$image = $pInfo['Image'];
}

$new['Image'] = $image;

array_push($backData,$new);
}


解决办法:

可以先获得所有的产品id后,一次性查询出所有的产品信息,然后在循环查询出的产品信息,根据产品id和订单信息做关联

$backData = [];
$ids = [];
foreach($orderList as $key=>$value){

$new = $value;
array_push($ids,$new['pid']);
....
array_push($backData,$new);
}

$product = new mProduct();

if($ids){
$productsInfo = $product->getInfoById($ids);

foreach($backData as $k=>&$v){
$v['Image'] = $productsInfo[$v['pID']]['Image'];
}
}


附:产品查询函数getInfoById根据传入的是数组还是字符串进行数据库操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: