首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress一直在执行这个SQL查询吗?

Wordpress一直在执行这个SQL查询吗?
EN

Stack Overflow用户
提问于 2015-01-04 05:53:52
回答 1查看 579关注 0票数 1

我的Wordpress站点没有太多的流量,但是我一直通过MySQL中的"SHOW;“来查看这个SQL查询:

代码语言:javascript
复制
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资源,我想知道为什么这个查询在我运行“显示进程”的每一秒都会多次出现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-04 08:07:55

你所看到的是正常和期待的,对此你无能为力。在加载页面时最多有30个SQL查询是正常的。不仅如此,还应进行检查。

那么,这些查询是什么?它们从何而来?

  • 每次加载页面时,都会执行主查询,即使是在404页上,或者当一堆垃圾进入字段/地址栏时也是如此。URL在查询参数中被解析和转换,查询参数被WP_Query用来根据来自URL的参数从db检索帖子。WP_Query将所有参数和请求转换为单个SQL查询,用于与数据库通信以检索所要求的内容。这是一个数据库命中,您什么也做不了,最有可能的是,这是来自您的问题的SQL查询。
  • 任何自定义查询( new WP_Queryget_postsget_pages )都被转换为SQL查询,以查询和检索数据库中的帖子。
  • 导航菜单使用转换为SQL查询的函数来构造主导航菜单。
  • 函数用于显示附在post上的标记、术语和类别,它使用SQL查询从DB检索标记/术语/类别。
  • 大多数默认的widgtes使用自定义查询和/或使用SQL查询从db获取信息的函数。
  • 一些条件标记使用SQL查询根据db中的条目检查条件。
  • 在页面上,主查询会生成一个额外的SQL查询,以检索用于特定页的页模板。
  • Wordpress运行一些在后台使用SQL查询的进程。
  • 相关或流行的post部分也使用自定义查询(在SQL查询中转换)来检索相关的帖子。

这些只是在每次页面加载时自动访问db的部分内容,一些可以控制,另一些不能,但最终,如果没有这些查询,您将无法在页面中获得视觉体验或功能。

我建议您在测试安装中下载并安装查询监视器。不要在生产站点上运行此工具,因为信息是直接打印到屏幕上的。该工具输出每个页面负载上的所有查询/db命中,以及这些查询执行所需的时间。这样,您就可以很好地了解发生了什么,哪些函数访问了db。

正如我已经说过的,在单个页面加载上最多有30个SQL查询(db hits)是正常的。更多的信息应该被检查,这通常可以通过优化您的代码来纠正。

需要记住和考虑的最重要因素是查询量与执行查询所需的实际时间之间的关系。这应该是你决定走哪条路的最重要的因素。我在过去多次表明,四个构造良好的查询有时比一个希望同时执行所有查询的查询快10倍。

同时,在无法流线型的大型大型操作中适当地使用缓存和瞬变。在某个阶段,无论您尝试什么,都会遇到一个查询,该查询的命中次数为70 db。

编辑

仅为了添加,通信量不会增加或减少默认情况下在给定页面上运行的SQL查询的数量。SQL查询的数量完全由要完全加载页面的进程决定。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27762838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档