解决magento保存产品时耗时很长的问题

以前我在更新产品属性值(拿price为例)的时候,通常会这样做:
[php]  view plain copy
  1. foreach($product_ids as $id){  
  2.     $product = Mage::getModel('catalog/product')->load($id);  
  3.     $product->setPrice($price)->save();  
  4. }  

因为之前网站产品很少,也就几百个,foreach下来,不会感觉这段code很慢,后来产品逐渐增多,每次走到这里,动辄就会消耗几个小时;echo了一下save,每个产品约耗费5秒,如果有1万件产品,foreach完成就是14个小时,mysql都几乎就要gone 掉了;
上网search了一下发现magento有一个直接更新Attribute的function,改code之后为
[php]  view plain copy
  1. $store_id = Mage::app()->getStore('default')->getId();  
  2. foreach($product_ids as $id){  
  3.     Mage::getSingleton('catalog/product_action')->updateAttributes(array($id), array('price'=>$price), $store_id);  
  4. }  

这段code要比前面的节省5倍左右的时间,很好的解决了我的需求。

转载于:https://my.oschina.net/jonasms2009/blog/174664

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值