电脑安全

您当前的位置:主页 > 电脑安全 >

PHP程序循环迭代中谨慎操作数据库-网络编程

来源:[db:来源]标题:   数据库    编辑:电脑技术全能网 时间:2019-09-22 18:27

原标题:PHP程序循环迭代中谨慎操作数据库-网络编程
   PHP顺序员滴咱们,在习气习惯应用OOP滴时期,更多滴时间斟酌顺序模块化,功效愈简略愈好,全体封装供顺序挪用!主意是好滴,但一定都可取。。。 PHP草根滴咱们,始终认为数据库是全能,为了完成功效却很少去斟酌效力与数据库瓶颈成绩。比方在一个轮回中查问数据库,一个迭代方式中查问数据库都长短常弗成取滴,特别是前端顺序!在拜访量不大,并发少时看不出任何成绩!一旦拜访量突增,并发拜访量多时每每就成数据库效劳器负荷太重,严峻情形会宕机,成果真不胜假想,并且在这类情形下PHP顺序员每每很难查详细起因。先看一个迭代案例代码,当分类到达1000个以上滴时间,挪用一次就要查问超1000次以上滴数据库查问,如许滴代码是何其恐惧,不必再细说了吧! 代码以下复制代码 /** * 递归猎取分类 * @author:xxx * @param $tree_id */function get_child_tree($tree_id = 0) { $three_arr = array(); $sql = “SELECT count(*) FROM TABLE WHERE parent_id = “$tree_id” AND is_show = 1 "; if ($GLOBALS[db]->getOne($sql) || $tree_id == 0) { $child_sql = "SELECT ……"; $res = $GLOBALS[db]->getAll($child_sql); foreach ($res AS $row) { if ($row[is_show]) { $arr[id] = $row[cat_id]; …… } if ( intval($row[cat_id]) != 0) { $three_arr[$row[cat_id]][cat_id] = get_child_tree($row[cat_id]); …… } } } return $three_arr; } 再有一些例子,有些同窗喜爱用while,for等轮回中作数据库查问操纵,一样是弗成取滴,仍是那句话,当数据库并发更新不大,或许拜访量不大滴情形下,数据库效劳器负荷也是很重滴,操纵时须慎重。特殊是在作为封装滴函数外部,由于今后滴顺序你会不警惕滴多挪用几回这个函数,那形成效劳器滴开支是无奈估计滴。

上一篇:php常见问题和解决方法-网络编程

下一篇:没有了