PHP多次访问数据库,是否有优化方案

$QUERY="SELECT*FROMtb";$result=$mysql->_query($QUERY);while(!!$_rows=$mysql->_fetch_a... $QUERY="SELECT * FROM tb";
$result=$mysql->_query($QUERY);
while(!!$_rows=$mysql->_fetch_array_list($result)){
//do something
$aaa="SELECT *FROM btb WHERE btb.id =$_rows[id]";
$bb=$mysql->_query($aaa);
while(!!$_rows=$mysql->_fetch_array_list($bb)){
//do something
}
像这种情况需要多次访问数据库,请问是否有优化方案,比如事先存入数组之类的。。。
展开
 我来答
此用户被关机
2012-04-06 · TA获得超过317个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:238万
展开全部
我只针对你这个做优化吧。。
第一个不要用select * 这样的sql语句,你需要什么字段就写哪些字段
都需要的话,你都写出来,select * 效率很低的。。
第二个如果说你的后台中对这些数据的变动不是很频繁
然后你可以将查询结果存入memcahe中
我写一段伪代码
$mem_key="all";
$res = $memcache->get($mem_key);
//如果没有存入memcache中
if (empty($res){
//sql语句可以用left jion on关联查询
$aaa="select b.字段1,b.字段2...from btb as b left jion tb as b.id=t.id";
$bb=$mysql->_query($aaa);
while(!!$_rows=$mysql->_fetch_array_list($bb)){
//do something
$res ....
}
//结果存入memecahed中
$memcache->set($mem_key,$res,0,超时时间);
}
$res就是你获取的结果。。
你这段代码基本可以这样。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式