Scaling a WP eCommerce site

时间:2010-09-01 作者:RealityCramp

与此相关question.

任何关于优化WP上大型电子商务站点的工具和插件的建议。目前达到1000个项目,还有5000个项目即将推出。这些优化似乎与服务于数千用户的标准博客有所不同。在WP上开发的门店数量正在增加,将一系列优化组合在一起似乎很有帮助。

毫米/钢筋混凝土

2 个回复
最合适的回答,由SO网友:bsr 整理而成

我使用Wordpress和Shopp插件开发了一个55k的产品电子商务网站,可以分享我对MySQL所做的工作,以弥补更好的性能,YMMV和其中一些(或全部)可能不适用于您的情况。

通过查看“show status”sql命令的输出来确定需要增加多少缓冲区/缓存-有一些工具可以优化此输出,这可能很有用,我通常只是使用phpmyadmin来了解一下。http://blog.mysqltuner.com/ 也是一种方便的资源和实用工具。

确保您的查询缓存处于打开状态,并且它足够大,可以拥有非常低的内存双关数字。确保密钥读取的数量不太高(这是一个相对值),增加密钥缓冲区大小可以帮助实现这一点。确保创建的临时表的数量较低,通过增加tmp\\u table\\u size来减少该数量。

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

如果您使用的是全文索引,我不认为InnoDB表是一种选择——只是不要在繁忙时间更新产品。如果您的电子商务软件包支持它,您可以通过在登台服务器上进行更改,然后将产品表从登台转储并加载到生产中,来最大限度地减少客户中断(性能或其他方面)-但是,如果您的Wordpress安装的其余部分没有一些额外的工作,这将不起作用。

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

预加载缓存-通过使用wget对站点进行爬网,也可以预加载诸如查询缓存和Wordpress级缓存之类的简单缓存。您还可以使用用户搜索行为(通过日志)预加载搜索缓存,并在需要填充缓存时重新获取这些请求。

SO网友:Ryan Gibbons

我对自己的评论很好奇,并一直在阅读,这就是我的所在。

首先,我会W3 Total Cache 试试看。另外,在服务器上安装APC PHP扩展,并设置W3 Total Cache以使用它。它将使用APC缓存数据库对象、PHP,甚至帮助缩小CSS和JS。这可能足够了。尤其是如果您已经合并了一些MySQL缓存。W3 Total Cache还可以将Memcache用作缓存后端。

对于数据库来说,缓存查询是非常有用的。我发现this link 他解释了他是如何为他的MU博客做一些事情的。引用:

查询缓存是MySQL中一个漂亮的小功能,它将最近没有更改的表的查询结果存储在主内存中的专用内存中。

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

所以这很酷,而且会有很大帮助,因为产品本身不会有太大变化。本文提到的另一件事是确保您有足够的内存将数据库保存在Ram中,这将有助于显著加快查询速度。

他还谈到了表类型,并将MyISAM置于InnoDB之上,用于大多数只读表,虽然这种推理有点面向MU,但可能会很有用。

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

结束

相关推荐