外星人 发表于 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秒,有没有办法优化呀

Raphael 发表于 2013-9-10 11:27:51

一條sql語法,
被執行了200次,
會有什麼好效能?

外星人 发表于 2013-9-12 16:47:56

就是想问下高手有没有什么办法能更有效率点,小弟我初学的

Raphael 发表于 2013-9-13 10:37:13

請檢視一下下列的問題
1.資料表設計---能不能符合多表關連,有沒有使用適合的字段類型,確認操作條件符合
2.程式設計--符合MVC架構,使用OO,符合CI規範,對Mysql操作熟練.
3.對Framework(CodeIginter)操作嫻熟.
4.對LAMP架構清礎
5.找到好的書,或者請教懂的人.

比如樓主的sql操作,
可以試者使用 $this->db->update_batch();
页: [1]
查看完整版本: 此更新代码有没有办法提高效率