WooCommerce在许多类别上进展缓慢

时间:2014-02-04 作者:Senrab

我对WooCommerce(和WordPress)的速度有点慢感到有些挣扎。我有一个客户开发商店,其统计数据如下

5319种产品2437种产品类别

类别的层次结构如下/产品类别/按型号/accord-ch1-1998-2003/车身/附件加载默认/店铺/页面(仅显示子类别)需要14秒。

逐步浏览这些类别,每个类别的加载时间都更短/产品类别/按型号/加载需要6秒钟/产品类别/按型号/accord-ch1-1998-2003/加载需要1.5秒/产品类别/按型号/accord-ch1-1998-2003/车身/加载需要1.5秒。

这些类别都不包含产品,只包含子类别。

最后,产品类别/按型号/accord-ch1-1998-2003/车身/附件任何产品的第一类都需要600 ms的加载时间。

加载时间==到达第一个字节的时间-一旦服务器发送数据,我们将在几毫秒后准备好DOM。主题负载约为每页500Kb。

我确信问题在于它在更高级别类别中执行的大量SQL查询。在发布这篇文章之前,我将该站点从原来的低负载共享Dell R410服务器迁移到类似硬件上的VPS上,这样我就可以更多地使用apache或MySQL了。服务器性能良好。负载低。

我尝试过使用高级缓存和对象缓存(都是基于memcache的),但没有看到太多好处。当我查看一般的MySQL日志时,我看到这些海量查询过去了。根据慢速查询日志,它们都不慢,我只能假设这是它们的绝对数量,或者它对taxo表的连接。SQL缓存也已启用,但似乎也没有多大帮助。

(所有其他页面加载速度都很快,只有这些Woo类别会导致问题)。

使用SQL Profiler,我不认为SQL的速度慢,更多的PHP占用了大约100%的CPU负载,而WooCommerce做了一些事情。

总查询时间:89次查询0.09768s。15.40064s生成的页面(99.37%PHP,0.63%MySQL)

以前有没有人经历过这种行为?我的想法快用完了!

编辑

我确信这与在不必要的术语上进行Woo循环有关。商店主页(/商店/)会进行如下查询http://pastebin.com/jsiaYenq 两次返回约13000行。

另一个类似的查询http://pastebin.com/B9xhFLFe 返回几乎相同的行数。

SQL快速返回这些查询,但NewRelic证明WooCommerce正在尝试处理这些海量数据集,这些数据集消耗了100%的CPU,需要大约25秒才能完成。

New Relic显示,该应用程序长期处于“woocommerce”阶段。newrelic

我相信这就是问题所在!

1 个回复
SO网友:Senrab

在发布了我认为是GitHub/Woocommerce上的一个bug之后,开发人员推出了一些针对这个问题的修复程序。公平地向他们喊叫!

https://github.com/woothemes/woocommerce/issues/4644

结束

相关推荐