【发布时间】:2014-10-08 14:58:33
【问题描述】:
我正在建立一个 Magento 电子商务网站,并从旧网站导入客户资料。我正在使用 CSV 导入器,这个过程比我想象的要慢得多。仅一位客户就需要将近 4 秒。到目前为止,该过程已经运行了 6 个多小时,只导入了 30k 客户。 CSV 文件被分成几个~1000 万个更小的文件。
目前,我正在使用 Amazon Web Services EC2 实例(微型)作为开发服务器。它有 1 个 vCPU (2.5GHz) 和 1GiB 内存。但我不认为这可能是一个问题。我将php内存限制增加到1G。
我读过一篇文章说,由于 Magento 的 EAV 数据库系统和繁重的 PHP API 模块 [Speeding up Magento Imports],这种导入产品的速度问题很常见。它说 Magento 发送 450 个 MySQL 查询以导入一个产品。我还看到了一种使用 [Magmi] 的解决方法,它试图绕过 Magento 的 API 并将数据直接插入 MySQL 表中。然而,AFAIK 似乎并没有导入客户,而只是导入产品和类别。我不知道他们(产品和客户)是否使用相同的机制。
我禁用了缓存管理并将索引管理选项设置为“手动更新”。尽管客户资料并没有真正使用这些流程。
您对提高 CSV 导入速度有什么建议吗?
[跟进]
我找到了问题来源之一,即 Amazon EC2 T2 实例。他们使用 CPU Credits 来控制最大 CPU 使用率。对于微型实例,基本 CPU 性能限制为其容量的 10%。我使用了所有的 CPU 积分,而服务器不允许我使用完整的 CPU。
我现在刚刚检查了导入性能,它每秒导入大约 2 条记录。我认为这仍然太慢,所以我会等待更多的其他解决方案。也许是优化?
【问题讨论】:
标签: mysql web-services api magento csv