用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1651|回复: 4
收起左侧

[讨论/交流] 此更新代码有没有办法提高效率

[复制链接]
发表于 2013-9-7 12:08:30 | 显示全部楼层 |阅读模式
foreach($param as $k=>$v){
                                                $arr[$k] = array('pro_id'=>$v['id'],'addtime'=>$shij,'qpsl'=>$v['qpsl'],'discount'=>1);
                                        }
上面这段代码是将数组重新排列

foreach($param as $k=>$v){
                                                $this->odb->updatetable('hx_order_product','order_id = '.$id.' and pro_bh="'.$v['bh'].'"',$arr[$k]);
                                        }       

代码更新效率不高,200条不到的数据,运行要20-30秒,而且cpu占用到50-80%瞬间网站卡的不行!
 楼主| 发表于 2013-9-10 10:26:52 | 显示全部楼层
foreach($param as $k=>$v){
                                                $this->db->query("UPDATE hx_order_product SET pro_id =".$v['id'].", addtime = ".$shij.", qpsl = ".$v['qpsl'].", discount = 1 WHERE order_id = ".$id." and pro_bh= '".$v['bh']."'");
                                        }       
这样应该看的更加明白一点,就这语句,200条数据,cpu占用50-80%,要运行20-30秒,有没有办法优化呀
发表于 2013-9-10 11:27:51 | 显示全部楼层
一條sql語法,
被執行了200次,
會有什麼好效能?
 楼主| 发表于 2013-9-12 16:47:56 | 显示全部楼层
就是想问下高手有没有什么办法能更有效率点,小弟我初学的
发表于 2013-9-13 10:37:13 | 显示全部楼层
請檢視一下下列的問題
1.資料表設計---能不能符合多表關連,有沒有使用適合的字段類型,確認操作條件符合
2.程式設計--符合MVC架構,使用OO,符合CI規範,對Mysql操作熟練.
3.對Framework(CodeIginter)操作嫻熟.
4.對LAMP架構清礎
5.找到好的書,或者請教懂的人.

比如樓主的sql操作,
可以試者使用 $this->db->update_batch();

本版积分规则