如何缓存/加速登录用户的Wordpress查询?

时间:2015-07-15 00:10:15

标签: php mysql wordpress database-performance bluehost

Wordpress生成了大量的SQL查询。

我们使用'WP Fastest Cache',它可以从您的平台创建静态html页面并缓存它们。然而,对于登录用户而言,静态页面不起作用。

这是我所看到的。 122个查询,在db时间内花费了7.8秒!此外,您可以看到所有查询都非常快(~0.05秒)。因此缓存查询不会有帮助

enter image description here

我使用bluehost部署和mysql db。

什么是优化此功能的最佳方式。有没有办法在mysql或其他一些优雅的解决方案上并行运行所有查询?

我正在考虑使用rails在heroku上构建它,但是我们目前没有足够的时间,所以我们必须想出一种优化db的方法。

1 个答案:

答案 0 :(得分:1)

  

此外,您可以看到所有查询都非常快

那些查询不是那么快。 0.1s对选项表进行简单查找非常慢。

您发布的图片中的所有查询都在选项表中。我不确定您的大多数查询是否都是选项查询,但如果您想减少选项查询的总数,可以使用update_option上的autoload参数或{{3} }。来自文档:

  

$ autoload
  (字符串)(可选)此选项是否应由函数add_option自动加载(在每个页面加载时将选项放入对象缓存中)?有效值:是或否。

如果您自动加载选项,则会在一个查询中提取所有内容。这将减少查询总数,但如前所述,您的查询开始时不应花费那么长时间。

对于现有选项,您必须先删除它们,然后使用autoload参数重新添加它们:

$val = get_option('some_option');
delete_option('some_option');
update_option('some_option', $val, true);

默认情况下,当您创建选项时,它们会被设置为自动加载,因此您有很多不自动加载的选项有点奇怪。