2015-09-28 72 views
0

问题与慢查询

我有Magento的店,这家店运行同步联网产品和存储中的脚本问题,这个脚本运行每个1个小时,我的服务器管理员阻止网站访问,因为这个剧本是得到缓慢的查询。

问题

我的剧本刚刚看了一个CSV文件,因为如果SKU已经注册的每一行检查时,如果已经更新重量,股票和价格,有更好的方法来做到这一点?

这是我的脚本。

$produto = Mage::getModel('catalog/product'); 
$productId = $produto->getIdBySku($sku); 
$produto->load($productId); 

if ($produto->getId()) { 
    $stock = $produto->getStockData(); 
    $stock['qty'] = $quantidade; 
    $stock['is_in_stock'] = $this->initStock($quantidade); 
    $stock['manage_stock'] = 1; 
    $stock['use_config_manage_stock'] = 1; 
    $produto->setData('price', $preco); 
    if ($altura > 0) 
     $produto->setData('volume_altura', $altura); 
    if ($comprimento > 0) 
     $produto->setData('volume_comprimento', $comprimento); 
    if ($largura > 0) 
     $produto->setData('volume_largura', $largura); 
    $produto->setData('weight', $this->initWeight($peso)); 
    $produto->setStockData($stock); 

    $produto->save(); 
} else { 
    $produto = Mage::getModel('catalog/product'); 
    $produto->setTypeId('simple'); 
    $produto->setAttributeSetId(4); 
    $produto->setData('tax_class_id', 0); 
    $produto->setVisibility(1); 
    $produto->setStatus(1); 
    $produto->setData('sku', $sku); 
    $produto->setData('color', $cor); 
    $produto->setData('name', utf8_encode($descricao)); 
    $produto->setData('marca', $this->initAttribute(148, $marca)); 
    $produto->setData('codigo_barra', $codBarra); 
    $produto->setData('price', $preco); 
    if ($altura > 0) 
     $produto->setData('volume_altura', $altura); 
    if ($comprimento > 0) 
     $produto->setData('volume_comprimento', $comprimento); 
    if ($largura > 0) 
     $produto->setData('volume_largura', $largura); 
    $produto->setData('cost', $custo); 
    $stock['qty'] = $quantidade; 
    $stock['is_in_stock'] = $this->initStock($quantidade); 
    $stock['manage_stock'] = 1; 
    $stock['use_config_manage_stock'] = 1; 
    $produto->setStockData($stock); 
    $produto->setData('weight', $this->initWeight($peso)); 

    $produto->save(); 
} 

回答

1

有什么办法可以减少CSV文件中的项目数量吗?我的意思是,如果每次发送所有项目并为每个项目发出查询,则查询的次数和脚本完成的时间将会过长。

我建议您只与商店同步新项目或具有更新值的项目,它会减少CSV中的行数和查询数量,而且,如果您在CSV文件中包含a带有标志的字段已更新/新建或类似的内容,您可以避免第一个查询来检查在找到“新”标志的情况下产品是否存在。

我希望它有帮助。

+0

嗯,csv只是新的和更新的产品,我会尝试创建一个标志。 – gabrielbuzzi