如何 cache/speed Wordpress 查询登录用户?

How to cache/speed Wordpress queries for logged in users?

Wordpress 生成了大量 sql 查询。

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

这是我所看到的。 122 次查询,花费 7.8 秒的数据库时间!此外,如您所见,所有查询都非常快(~0.05 秒)。因此缓存查询不会有帮助

我正在使用 bluehost 进行部署和 mysql 数据库。

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

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

Moreover as you can see all the queries are pretty fast

那些查询没那么快。 0.1s 对选项 table 的简单查找非常慢。

您发布的图像中的所有查询都在选项 table 上。我不确定你的大部分查询是否是选项查询,但是如果你想减少选项查询的总数,你可以在 update_option or add_option 上使用 autoload 参数。来自文档:

$autoload
(string) (optional) Should this option be automatically loaded by the function wp_load_alloptions() (puts options into object cache on each page load)? Valid values: yes or no.

如果您自动加载您的选项,它们将在一个查询中全部获取。这将减少查询总数,但如前所述,您的查询不应该花那么长时间开始。

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

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

默认情况下,当您创建选项时,它们被设置为自动加载,所以您有这么多选项不是自动加载的,这有点奇怪。