优化使用Magento的网站

时间:2010-06-30 16:22:01

标签: php mysql magento stored-procedures

请耐心等待我的问题,因为这可能会有点长。

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

  1. 托管服务器带宽
  2. Magento提供很多&许多功能,其他人没有(并且将无法)提供现在提供的灵活性。
  3. 客户端/管理员可以使用自定义模块功能覆盖Magento功能的核心行为,这对其他非PHP网站来说有点难度。
  4. 对于非= PHP网站,程序员可以非常轻松地使用存储过程的概念,借助它们可以在视图和视图中加载整个数据库。然后断开与数据库的连接。因此,无论何时发生对下一页/上一页的任何服务器请求,服务器只是访问视图以获取正确的结果,而不是直接从数据库中获取。
    同样来自MySQL 5.0,它引入了存储过程概念,但我不知道这是否完全用于Magento。即使它在Magento中使用,它是否对Magento有任何帮助,是另一个大问题,因为Magento提供了很多功能。

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

    请任何人知道什么&怎么做将极大地帮助每个Magento用户,不仅仅是在概念上,而且如果可能的话还会以编程方式?

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

1 个答案:

答案 0 :(得分:4)

不久前,我推出了Magento商店,其中包含超过40万种产品,7,000多种类别,2,000多种属性集以及超过400万种产品属性。<​​/ p>

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

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

我们做的最后一项更改是修改产品视图页面,以便更快地使用属性。当你拥有数百万个属性时,Magento正在进行查询的方式很慢,只需要一个简单的修改即可修复。

最棒的是,所有这一切都是通过自定义插件完成的,它没有花很长时间,而且商店效果很好。

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

您还可以告诉Magento将会话保存到Memcache中,以便您的会话在内存中并分发。一旦你修改Magento以摆脱所有那些“讨厌的”查询,其余的与任何网站都是一样的。有很多工具可以帮助您“扩展”您的系统。请记住,我们有很多产品,并准备大约1,000,000种产品。因此,如果您正在做40,000种产品,那么您可能不会遇到那么多麻烦。