我的Wordpress站点没有太多的流量,但是我一直通过MySQL中的"SHOW;“来查看这个SQL查询:
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts
WHERE 1=1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish')
ORDER BY wp_posts.post_date DESC LIMIT 0, 10我已经关闭所有插件,并更新到最新的Wordpress版本(4.1)。我还使用了WordPress内置的默认主题(2014年)。
每当我运行“显示进程”时,我都可以看到至少有3-8个查询在运行,有时甚至更多,比如这个查询的10+,而流量很轻(甚至空闲)。
我问这个问题是因为MySQL使用了大量的CPU资源,我想知道为什么这个查询在我运行“显示进程”的每一秒都会多次出现。
发布于 2015-01-04 08:07:55
你所看到的是正常和期待的,对此你无能为力。在加载页面时最多有30个SQL查询是正常的。不仅如此,还应进行检查。
那么,这些查询是什么?它们从何而来?
WP_Query用来根据来自URL的参数从db检索帖子。WP_Query将所有参数和请求转换为单个SQL查询,用于与数据库通信以检索所要求的内容。这是一个数据库命中,您什么也做不了,最有可能的是,这是来自您的问题的SQL查询。new WP_Query、get_posts和get_pages )都被转换为SQL查询,以查询和检索数据库中的帖子。这些只是在每次页面加载时自动访问db的部分内容,一些可以控制,另一些不能,但最终,如果没有这些查询,您将无法在页面中获得视觉体验或功能。
我建议您在测试安装中下载并安装查询监视器。不要在生产站点上运行此工具,因为信息是直接打印到屏幕上的。该工具输出每个页面负载上的所有查询/db命中,以及这些查询执行所需的时间。这样,您就可以很好地了解发生了什么,哪些函数访问了db。
正如我已经说过的,在单个页面加载上最多有30个SQL查询(db hits)是正常的。更多的信息应该被检查,这通常可以通过优化您的代码来纠正。
需要记住和考虑的最重要因素是查询量与执行查询所需的实际时间之间的关系。这应该是你决定走哪条路的最重要的因素。我在过去多次表明,四个构造良好的查询有时比一个希望同时执行所有查询的查询快10倍。
同时,在无法流线型的大型大型操作中适当地使用缓存和瞬变。在某个阶段,无论您尝试什么,都会遇到一个查询,该查询的命中次数为70 db。
编辑
仅为了添加,通信量不会增加或减少默认情况下在给定页面上运行的SQL查询的数量。SQL查询的数量完全由要完全加载页面的进程决定。
https://stackoverflow.com/questions/27762838
复制相似问题