查询速度慢的问题

时间:2015-09-28 13:48:48

标签: php magento

问题

我有一个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 个答案:

答案 0 :(得分:1)

有没有办法减少CSV文件中的项目数量?我的意思是,如果你每次都发送所有项目,并且每个项目你都会进行查询,你所做的查询数量以及完成脚本完成的时间将会过高。

我建议您只与商店同步新商品或带有更新值的商品,它还会减少CSV中的行数和查询数量,如果您在CSV文件中包含字段使用标志更新/新建或类似的东西,您可以避免第一个查询检查产品是否存在于"新"国旗被发现。

我希望它有所帮助。