1. 程式人生 > >解決magento儲存產品時耗時很長的問題

解決magento儲存產品時耗時很長的問題

以前我在更新產品屬性值(拿price為例)的時候,通常會這樣做:
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之後為
$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倍左右的時間,很好的解決了我的需求。

本文連結http://blog.csdn.net/shangxiaoxue/article/details/10605579