您好,欢迎来到蚂蚁分类目录_网站收录提交!
当前位置:蚂蚁分类目录_网站收录提交 » 站长资讯 » 站长运营 » WordPress教程 » 文章详细 订阅RssFeed

WordPress博客程序文章多了之后网站变卡是什么原因?Wordpress数据库优化解决

来源:vps博客 浏览:182次 时间:2021-07-22

大家有没有发现当使用WordPress这款程序文章多了后会越来越卡,如果不进行优化直接没法用。今天分享下WP之数据库SQL优化方法。

 

WordPress在查询post列表时,默认会同时把文章数量也查询出来,使用这种方式的有:get_posts 、query_posts和WP_Query。get_posts在4.6.1+已经不用SQL_CALC_FOUND_ROWS,但是query_posts和WP_Query还是会用,所以还须优化。


具体语句如下:

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, 20 SELECT FOUND_ROWS()

在网站数据量小的时候,不会引起什么问题,但是当post数量到10w+的时候,这个就是一条必现的慢查询。

首页、分类、标签、搜索页面,只要用到这几个函数,就都会使用SQL_CALC_FOUND_ROWS这个方式。

解决方案:

 

方法一

彻底禁用SQL_CALC_FOUND_ROWS

放在functions.php文件即可:

add_action('pre_get_posts', 'wndt_post_filter'); 
function wndt_post_filter($query){ if (is_admin() or !$query->is_main_query())
 { return $query; } // 禁止查询 SQL_CALC_FOUND_ROWS $query->set('no_found_rows', true); }

方法二

如果仍然需要查询文章数量,使用更加高效的EXPLAIN方式代替SQL_CALC_FOUND_ROWS

禁用掉SQL_CALC_FOUND_ROWS用法,用一种更加高效的方式,

这里我们用EXPLAIN方式

具体代码如下,放在functions.php文件即可:

if ( ! function_exists( 'maizi_set_no_found_rows' ) ) { /**
     * 设置WP_Query的 'no_found_rows' 属性为true,禁用SQL_CALC_FOUND_ROWS
     *
     * @param WP_Query $wp_query WP_Query实例
     * @return void
     */ function maizi_set_no_found_rows(\WP_Query $wp_query)
{ $wp_query->set('no_found_rows', true); } } 
add_filter( 'pre_get_posts', 'maizi_set_no_found_rows', 10, 1 );
 if ( ! function_exists( 'maizi_set_found_posts' ) ) { /**
     * 使用 EXPLAIN 方式重构
     */ function maizi_set_found_posts($clauses, \WP_Query $wp_query)
{ // Don't proceed if it's a singular page. if ($wp_query->is_singular()) 
{ return $clauses; } global $wpdb; $where = isset($clauses['where']) ? 
$clauses['where'] : ''; $join = isset($clauses['join']) ? $clauses['join'] : ''; 
$distinct = isset($clauses['distinct']) ? $clauses['distinct']
			
				        	


				
            

推荐站点

  • 优雅导航优雅导航

    优雅导航--优雅导航(ndyywz.com)-创建于2020年4月13日。作为网站推广平台,致力为广大站长、网友提供优质、优雅网站链接。优雅导航免费收录高质量网站。

    www.ndyywz.com
  • 我是至尊,书呆小说阅读网我是至尊,书呆小说阅读网

    书呆网是广大书友最值得收藏的网络小说阅读网,网站收录了当前最火热的网络小说,免费提供高质量的小说最新章节,是广大网络小说爱好者必备的小说阅读网。

    www.shudai.org
  • 百万站百万站

    百万站-百万优秀网站的大本营,深受百万站长喜爱与支持的网站收录与提交入口!百万站官网汇聚百万精品网站,与您分享百万精彩网站知识。我们深信:每一个优秀网站的背后都有一个值得我们解读的故事。

    www.baiwanzhan.com
  • llss琉璃神社_ACG动漫同人作品llss琉璃神社_ACG动漫同人作品

    いらっしゃいませ!琉璃神社是一个分享ACG动漫同人作品的有爱社团,在这里你能找到很多欢乐。

    llss.fan
  • 花瓣网-花瓣网素材花瓣网-花瓣网素材

    花瓣搜索网站huaban.com,帮你采集,发现网络上你喜欢的美好事物.你可以用它收集灵感,保存有用的素材,计划旅行,晒晒自己想要的家居,服饰搭配,发型和婚纱.华为上线自研搜索引擎「花瓣」搜索引擎。

    www.huaban.com
  • 【PPT模板下载】-精美PPT模板大全-无忧PPT网【PPT模板下载】-精美PPT模板大全-无忧PPT网

    8年专业PPT模板网站【无忧ppt】提供大量免费精美PPT模板、好看的powerpoint模板素材、图标等资源。无论工作汇报、教学答辩、自我介绍PPT模板,还是商务PPT模板、动态PPT模板下载,一应俱全。

    www.51ppt.com.cn