時(shí)間: 2024-11-14 03:14:07 人氣: -
WordPress網(wǎng)站訪問(wèn)慢,一般是數(shù)據(jù)庫(kù)查詢語(yǔ)句執(zhí)行慢導(dǎo)致的。
例如:查詢語(yǔ)句如下
/* 受影響記錄行數(shù): 0 已找到記錄行: 5 警告: 0 持續(xù)時(shí)間 1 查詢: 15.016 秒. */
上面一條語(yǔ)句執(zhí)行要15秒,這未免太慢了。
通過(guò)改WordPress代碼中的查詢語(yǔ)句,肯定可以解決這些問(wèn)題,但問(wèn)題是,如果要改sql語(yǔ)句,勢(shì)必要改很多代碼,這個(gè)方法我不推薦。
有的人可能說(shuō)加索引,但加上索引后,發(fā)現(xiàn)執(zhí)行還是很慢。原因是,有的查詢語(yǔ)句未必會(huì)用到索引,所以,這個(gè)方法我也不推薦。
其實(shí)WordPress慢的原因,很大一部分跟wp_posts表查詢有關(guān),仔細(xì)觀察這個(gè)表,你會(huì)發(fā)現(xiàn)這個(gè)表引擎是InnoDB,MySQL有個(gè)非常適合查詢的表引擎是MyISAM,如果把這個(gè)表引擎改為MyISAM是否會(huì)更快了?
改變表引擎:
改完后,再次執(zhí)行查詢語(yǔ)句
/* 受影響記錄行數(shù): 0 已找到記錄行: 5 警告: 0 持續(xù)時(shí)間 1 查詢: 0.750 秒. */
速度提升了,由15.016秒變?yōu)榱?.750秒,這速度已經(jīng)很快了。
為了測(cè)試,那我就將整個(gè)數(shù)據(jù)庫(kù)中的所有表引擎都改為MyISAM試試。
改完之后,WordPress后臺(tái)文章列表頁(yè)面基本上可以4秒左右打開(kāi)。
后臺(tái)標(biāo)簽頁(yè)面由于排序?qū)е马?yè)面加載慢,可以通過(guò)代碼修改排序規(guī)則。
/* 受影響記錄行數(shù): 0 已找到記錄行: 20 警告: 0 持續(xù)時(shí)間 1 查詢: 18.485 秒. */
這個(gè)只能改查詢語(yǔ)句了。
add_filter('get_terms_args',function ($args, $taxonomies ){
$args['orderby'] = 'term_id';
return $args;
},10,2);
強(qiáng)制將排序改為按照term_id排序,現(xiàn)在,查詢肯定很快。
上面那條語(yǔ)句放棄優(yōu)化,2秒可以接受。
基本上網(wǎng)站后臺(tái)頁(yè)面沒(méi)有之前那么卡了,至于前臺(tái)頁(yè)面的優(yōu)化,需要根據(jù)主題代碼來(lái)優(yōu)化,這邊推薦安裝緩存加速類的插件解決前臺(tái)訪問(wèn)慢的問(wèn)題。