【问题标题】:Optimizing Magento-using Websites优化使用 Magento 的网站
【发布时间】:2012-04-30 17:33:39
【问题描述】:

请耐心等待我的问题,因为这可能会更长一些。

如果您查看 Magento 并尝试与任何其他非 PHP 电子商务购物车网站进行比较,您会发现后者相对更快。我知道以下因素也有效:-

  1. 托管服务器带宽
  2. Magento 提供了很多很多功能,而其他人没有(也将无法)提供的功能与现在提供的一样灵活。
  3. 客户/管理员可以使用自定义模块功能覆盖 Magento 功能的核心行为,这对于其他非 PHP 网站来说有点困难。

对于非 PHP 网站,程序员可以非常轻松地使用存储过程的概念,借助存储过程,他们可以在视图中加载整个数据库,然后与数据库断开连接。因此,每当发生任何对下一页/上一页的服务器请求时,服务器只会访问视图以获取正确的结果,而不是直接从数据库中获取。
同样从 MySQL 5.0 开始,它引入了存储过程的概念,但我不知道这是否在 Magento 中使用。即使它在 Magento 中使用,它是否对 Magento 有任何帮助,也是另一个大问题,因为 Magento 提供了很多功能。

与 Magento 网站相比,有许多客户喜欢他们的网站加载速度非常快。 Magento 可以在这方面提供任何帮助吗?

请任何对做什么和如何做有任何想法的人都会极大地帮助每个 Magento 用户,不仅在概念上,而且在可能的情况下以编程方式?

如果其他人有任何其他解决方案或任何其他想法,请分享这些,例如 William

【问题讨论】:

  • 您知道总共有多少产品吗?
  • 我们的客户急于从大约 50k 种产品开始,以后会根据销量增加。
  • 是的,50,000 并不多。 Magento 应该做的很好,即使你必须做一些修改。我工作的商店由我自己在三周内完成,其中包括从经销商提供给我们的多个数据源中导入所有数据,耗时最长。再加上整个系统都进行了改造,你甚至不能说它是 Magento。我还重写了结帐页面,所以它是真正的“一页”,没有 AJAX。

标签: php mysql magento stored-procedures


【解决方案1】:

不久前,我推出了一家 Magento 商店,其中包含超过 40 万种产品、7,000 多个类别、2,000 多个属性集以及这些产品的超过 400 万个属性。

我们需要大约 500 毫秒的加载时间,并且它要在一个 Amazon EC2 超大内存实例上运行(大约每月 360 美元)。

我们的解决方案?实施 Solr。搜索现在由 Solr 提供支持,在浏览目录时我们使用方面,因此用户可以通过我们的 400 万多个属性来缩小搜索范围。与此有关的问题是,如果您使用“varchar”属性值,Magento 不允许您缩小结果范围。因此,我修改了目录页面以使用 Solr 的方面,同时修改目录页面以不对数据库进行任何查询,除了一个。此查询将获得 Solr 返回的 ID 列表,并对这些 ID 进行直接查询。这个插件花了几天时间写出来,主要是因为我之前没用过Magento。

我们所做的最后一项更改是修改产品视图页面,以使属性更快。当您拥有数百万个属性时,Magento 进行查询的方式真的很慢,一个简单的修改就被修复了。

很棒的是,所有这些都是通过自定义插件完成的,根本不需要很长时间,而且商店运行良好。

编辑:另外,请记住安装 APC(或替代方案)并配置 Magento 在其后端使用它。它极大地提高了速度,因为它不仅会加速 PHP,而且 Magento 是为与某些后端一起工作而构建的以加速它。您还可以做一些事情,比如将 Magento 的缓存存储在内存中(Linux 中的 tmpfs)。将静态内容存储到 CDN 或仅存储静态内容服务器将大有帮助,因为处理 Magento 的 Web 服务器根本不需要处理这些请求。你知道,运行应用程序的基本内容。

您还可以告诉 Magento 将会话保存到 Memcache 中,以便您的会话在内存中并且是分布式的。一旦你修改了 Magento 以摆脱所有那些“讨厌”的查询,剩下的就和任何网站一样了。有大量工具可以帮助您“扩展”系统。请记住,我们有很多产品,并且正准备购买大约 1,000,000 种产品。因此,如果您要处理 40,000 种产品,您可能不必费那么大的劲。

【讨论】:

  • 注意:我们再次拥有超过 40 万种产品和大量属性。考虑到 Magento 不是为“速度”而设计的,我们也在一台相当小的机器上运行。所以如果你有一个较小的数据集,它可能会容易得多,尽管我确实认为切换到像 Solr 这样的东西的好处是惊人的。
  • 如果可能,请提供您的 Magento 网站链接,这将有助于其他人(包括我)通过 Magento 了解 Solr 的强大功能。感谢威廉,提供了如此精彩的解释。
  • 出于法律原因,我无法提供应用程序的名称/链接。虽然我愿意回答你的一些问题来帮助你。你可以在这里看到一个方面的例子 - lucidimagination.com/Community/Hear-from-the-Experts/Articles/… - Solr 真的很快,在互联网上稍微浏览一下就会回答这个问题。由于我几乎将所有查询“删除”到 Magento 以收集其数据,然后直接使用 Solr,这显然对性能产生了巨大影响。
  • 我更新了我的答案,以讨论您可以采取的更多措施来加快速度。
  • 您能否提供一些详细信息,说明您如何删除所有直接/间接 Magento 查询,以便可以放置 Solr?请帮我解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多