it-swarm.cn

缩放a WP 电子商务网站

与此 问题 相关。

有关工具的建议,用于优化WP上的大型电子商务网站的插件。目前正在打1000件物品和5000多件物品。似乎优化与为数千名用户提供服务的标准博客不同。在WP上开发的商店数量正在增加,将优化包放在一起似乎很有帮助。

MM/RC

5
RealityCramp

我已经使用带有Shopp插件的Wordpress开发了一个55k产品电子商务网站,并且可以分享我对MySQL所做的工作以获得更好的性能,YMMV和一些(或所有)这些可能不适用于您的情况。

通过查看“show status”sql命令的输出来确定增加缓冲区/缓存需要多少 - 有些工具可以提供这个输出,这可能很有用,我经常只使用phpmyadmin来获取一个想法。 http://blog.mysqltuner.com/ 也是一个方便的资源和实用程序。

确保您的查询缓存已打开,并且它足够大以具有非常低的低内存插入数。确保您的密钥读取次数不是太高(这是一个相对值),增加key_buffer_size可以帮助解决这个问题。确保创建的临时表数量较少,通过增加tmp_table_size来减少该数量。

打开慢查询日志并记录慢查询,使用explain语句手动重新运行这些查询,根据需要添加索引更改列类型等。对于一个查询,我们得到了疯狂的解释语句(比如在比较“应该”更多的行中),升级到更新版本的MySQL会导致相同的查询被MySQL更好地优化(并且更快)本身。

如果您使用的是全文索引,我不相信InnoDB表是一种选择 - 只是在繁忙时段不要更新产品。如果您的电子商务软件包支持它,您可以通过在登台服务器上进行更改,然后仅使用转储从阶段转移到生产上来转移产品表,从而最大限度地减少客户中断(性能或其他方面) - 此将然而,没有在没有其他Wordpress安装的额外工作的情况下工作。

如果您的站点设计和用户体验可以支持它,引导用户进入“浏览”模式而不是“搜索”模式(例如:点击站点而不是在搜索框中键入搜索)可以帮助您利用一些非常简单的数据库级别和Wordpress级别缓存。

预加载您的缓存 - 像查询缓存和Wordpress级缓存这样的简单缓存也可以通过使用wget访问您的站点来预先加载。您还可以使用用户搜索行为(通过日志)预加载搜索缓存,并在需要填充缓存时重新获取这些请求。

11
bsr

我对自己的评论很好奇并且一直在做一些阅读,这里是我所在的地方。

首先,我会尝试 W3总缓存 。另外,在服务器上安装APC PHP extension并设置W3 Total Cache以使用它。它将使用APC缓存数据库对象,PHP,甚至帮助缩小你的CSS和JS。它可能提供足够的。特别是如果你已经加入了一些MySQL缓存。 W3 Total Cache也可以与Memcache一起用作缓存后端。

对于数据库,缓存查询非常有用。我发现 这个链接 ,他解释了他是如何为他的MU博客做点事的。报价:

查询缓存是MySQL中的一个极好的小功能,它在一个专用的内存中存储任何最近没有更改的表的查询结果。

也就是说,假设一个请求进入检索表中的特定行 - 并且该表最近没有以任何方式被修改 - 并且缓存未填满需要清除/清理 - 可以从此满足查询/数据缓存。这里的主要好处当然是满足请求 - 数据库不需要转到磁盘(通常是系统中最慢的部分)并且可以立即满足。

所以这很酷,并且会有很多帮助,因为产品本身不会发生太大变化。文章提到的另一件事是确保你有很多内存来保存Ram中的数据库,这将有助于显着提高查询速度。

他还讨论了表类型,并使用InnoDB上的MyISAM作为大多数只读表,而他的推理是面向MU的,它可能很有用。

关于设置索引。如果你有很多,他们可以减慢插入速度,并占用更多的磁盘空间。但由于我不认为定期添加大量产品,我认为这是可以接受的。磁盘空间便宜......

1
Ryan Gibbons