Magento批量导入永远需要在实时数据库上,但在本地站点上更快

时间:2013-10-17 20:20:19

标签: apache magento networking webserver

我们正在批量导入约1600种产品。当我在实时服务器上运行导入脚本时需要7-8个小时。

在我的本地机器上需要15分钟。我可以修复数据库是否有问题,以便快速运行导入?

随着时间的推移,这种导入变得越来越长。我记得在现场服务器上只花了20分钟。

现在$ adapter-> saveRow($ importData);一行或两行需要8分钟。

如何提高速度的任何方向都将非常感激。

Magento 1.6.2社区版在一个(不幸的)基于cherokee的网络服务器上运行,该服务器具有4GB Ram,服务器上没有其他站点。服务器有足够的电量。

if ($batchModel->getAdapter()) {
    $batchId = $batchModel->getId();
    $batchImportModel = $batchModel->getBatchImportModel();
    $importIds = $batchImportModel->getIdCollection();
    $batchModel = Mage::getModel('dataflow/batch')->load($batchId);
    $adapter = Mage::getModel($batchModel->getAdapter());
    $records = count($importIds);
    progressBar(0, $records, 50);
    foreach ($importIds as $importId) {
        progressBar($recordCount);
        $recordCount++;
        try {
            $batchImportModel->load($importId);
            if (!$batchImportModel->getId()) {
                $errors[] = $importId . " - empty batchImportModel ID";
                continue;
            }
            $importData = $batchImportModel->getBatchData();
            delete_product_image_by_sku($importData['sku']);
            try {
                $adapter->saveRow($importData);
            } catch (Exception $e) {
                $errors[] = $importId . " - cannot save row with sku: " . $importData['sku'] . " error: " . $e->getMessage();
                continue;
            }
        } catch(Exception $ex) {
            $errors[] = $importId . " - error: " . $ex->getMessage();
        }
    }
    progressBar($records);
    echo implode("\n", $errors);
}

1 个答案:

答案 0 :(得分:0)

我放弃了,最后使用了Magmi。