解决magento保存产品时耗时很长的问题
2014-08-31 18:55
197 查看
来源:http://blog.csdn.net/shangxiaoxue/article/details/10605579
以前我在更新产品属性值(拿price为例)的时候,通常会这样做:
[php] view
plaincopy
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
plaincopy
$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倍左右的时间,很好的解决了我的需求。
以前我在更新产品属性值(拿price为例)的时候,通常会这样做:
[php] view
plaincopy
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
plaincopy
$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保存产品时耗时很长的问题
- 解决magento保存产品时耗时很长的问题
- 解决magento保存产品时耗时很长的问题
- 解决magento保存产品时耗时很长的问题
- 解决magento保存产品时耗时很长的问题
- magento 后台保存分类失败,无法保存产品,ajax一直在转的问题 的解决 - Cannot edit categories in Magento
- 解决magento添加产品在前台不显示问题
- 解决magento中guest页面cookie保存时间过短问题
- 解决magento中guest页面cookie保存时间过短问题
- magento 每行要显示的产品数量,解决版式错乱的问题
- 字段含多个text、image字段,配完复制后,不能保存的问题解决方法
- fat32转ntfs解决大于4G文件不能保存问题
- 解决msmq私有队列不能持久保存的问题
- 解决eclipse编辑时文件不能保存中文的问题
- 解决安装sql server 2000 无法验证产品密钥的问题
- 解决eclipse编辑时文件不能保存中文的问题
- Hibernate 级联保存时 偶尔会出现 "id to load is required for loading" 问题的解决办法
- ERP产品实践>实施ERP中得到启发和经验---发现问题和解决问题
- 您尝试安装的产品已随操作系统一起安装到计算机上了,请用WINDOWS UPDATE安装更新 -- 问题解决
- Ecside checkbox 翻页后保存状态问题解决