您的位置:首页 > 其它

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

2013-11-06 21:59 393 查看
以前我在更新产品属性值(拿price为例)的时候,通常会这样做:

[php]
view plain
copy

foreach($product_ids as $id){

$product = Mage::getModel('catalog/product')->load($id);

$product->setPrice($price)->save();

}

因为之前网站产品很少,也就几百个,foreach下来,不会感觉这段code很慢,后来产品逐渐增多,每次走到这里,动辄就会消耗几个小时;echo了一下save,每个产品约耗费5秒,如果有1万件产品,foreach完成就是14个小时,mysql都几乎就要gone 掉了;

上网search了一下发现magento有一个直接更新Attribute的function,改code之后为

[php]
view plain
copy

$store_id = Mage::app()->getStore('default')->getId();

foreach($product_ids as $id){

Mage::getSingleton('catalog/product_action')->updateAttributes(array($id), array('price'=>$price), $store_id);

}

这段code要比前面的节省5倍左右的时间,很好的解决了我的需求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  magento 速度