gpt4 book ai didi

php - 通过 ORM 将数据导入 Magento 的性能是否可以接受,或者直接 SQL 是唯一的选择吗?

转载 作者:行者123 更新时间:2023-11-29 13:00:03 25 4
gpt4 key购买 nike

首先,我使用 Magento 的经验非常少,而且我的知识水平也仅仅比表面更深。我一直在阅读,但我仍然对我所知道的感到非常不舒服。

  • 我尝试过 MAGMI - 开箱即用,它仅导入产品,但我需要报价、订单、地址、客户和不同的价目表

  • 我尝试为 MAGMI 创建扩展 - 但我不太熟悉,也不太了解数据库结构来为其编写查询。

  • 我编写了一个模块,尝试使用 SOAP 接口(interface)导入客户信息,但速度绝对慢得可怕。 (约 5 分钟即可连接并导入单个客户的完整信息)

我需要编写一个模块,从自定义 XML 文件导入一些内容。

除了 XML 文件本身之外,我无法控制传入的数据 - 我更愿意按原样导入它,而不是将其转换为多个 CSV。

为了避免写入数据库,我尝试编写一个使用 SOAP 接口(interface)导入客户信息的流程,但速度慢得令人痛苦 - 我说的是 25-30 秒才连接到接口(interface),然后另一个实际导入单个客户需要 30 秒左右,没有他们的地址或任何其他信息。

我要么做了一些非常错误的事情 - 或者我没有按预期使用该系统,但无论如何,我将扩展我的模块以使用 Magento 的 ORM 导入产品,或者直接写入数据库.

我对实体-属性-值模型数据库知之甚少,而且我知道编写直接 SQL 查询取决于特定的 Magento 安装等等,所以我更喜欢使用这些模型。

此导入过程将是一个每 60 分钟运行一次的 cron 作业。

我知道这取决于我的代码的结果,但如果我每次运行导入多达 100 个产品、订单和客户,使用 Magento 的 ORM 是否会占用大量资源且速度缓慢?

最佳答案

Magento 总是存在性能/复杂性/保真度之间的权衡,克服这个问题的唯一方法就是卷起袖子,经历一些糟糕的导入,并了解什么最适合您的情况。

您可能感兴趣的两件事。首先,确保您的WSDL cache已开启。许多 V2 SOAP API 性能问题都可以追溯到 PHP 没有缓存 WSDL 文件。

其次,考虑编写使用 native PHP API 对象的 native PHP 脚本。我指的不是像 Mage_Catlog_Model_Product 这样的模型,而是像

这样的 API 对象
$model = Mage::getModel('customer/customer_api');
var_dump(get_class($model);

这些对象是 RPC/SOAP API 代码的业务逻辑所在,如果您可以直接调用它们,则可以避免许多与 WS API 开销相关的性能问题。

关于php - 通过 ORM 将数据导入 Magento 的性能是否可以接受,或者直接 SQL 是唯一的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23479750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com