WordPress十萬篇文章數(shù)據(jù)庫優(yōu)化指南
本文有643個(gè)文字,大小約為3KB,預(yù)計(jì)閱讀時(shí)間2分鐘
原文標(biāo)題:WordPress十萬篇文章數(shù)據(jù)庫優(yōu)化指南
WordPress網(wǎng)站訪問慢,一般是數(shù)據(jù)庫查詢語句執(zhí)行慢導(dǎo)致的。
例如:查詢語句如下
SELECT wp_posts.IDFROM wp_postsWHERE 1=1AND wp_posts.post_type = 'post'AND ((wp_posts.post_status = 'publish'))ORDER BY wp_posts.post_date DESCLIMIT 0, 5
/* 受影響記錄行數(shù): 0 已找到記錄行: 5 警告: 0 持續(xù)時(shí)間 1 查詢: 15.016 秒. */
上面一條語句執(zhí)行要15秒,這未免太慢了。
通過改WordPress代碼中的查詢語句,肯定可以解決這些問題,但問題是,如果要改sql語句,勢必要改很多代碼,這個(gè)方法我不推薦。
有的人可能說加索引,但加上索引后,發(fā)現(xiàn)執(zhí)行還是很慢。原因是,有的查詢語句未必會(huì)用到索引,所以,這個(gè)方法我也不推薦。
其實(shí)WordPress慢的原因,很大一部分跟wp_posts表查詢有關(guān),仔細(xì)觀察這個(gè)表,你會(huì)發(fā)現(xiàn)這個(gè)表引擎是InnoDB,MySQL有個(gè)非常適合查詢的表引擎是MyISAM,如果把這個(gè)表引擎改為MyISAM是否會(huì)更快了?
改變表引擎:
ALTER TABLE `wp_posts`
COLLATE='utf8mb4_unicode_520_ci',
ENGINE=MyISAM,
CONVERT TO CHARSET utf8mb4 COLLATE 'utf8mb4_unicode_520_ci';
改完后,再次執(zhí)行查詢語句
/* 受影響記錄行數(shù): 0 已找到記錄行: 5 警告: 0 持續(xù)時(shí)間 1 查詢: 0.750 秒. */
速度提升了,由15.016秒變?yōu)榱?.750秒,這速度已經(jīng)很快了。
為了測試,那我就將整個(gè)數(shù)據(jù)庫中的所有表引擎都改為MyISAM試試。
改完之后,WordPress后臺文章列表頁面基本上可以4秒左右打開。
后臺標(biāo)簽頁面由于排序?qū)е马撁婕虞d慢,可以通過代碼修改排序規(guī)則。
SELECT t.term_idFROM wp_terms AS tINNER JOIN wp_term_taxonomy AS ttON t.term_id = tt.term_idWHERE tt.taxonomy IN ('post_tag')ORDER BY t.name ASCLIMIT 20
/* 受影響記錄行數(shù): 0 已找到記錄行: 20 警告: 0 持續(xù)時(shí)間 1 查詢: 18.485 秒. */
這個(gè)只能改查詢語句了。
add_filter('get_terms_args',function ($args, $taxonomies ){
$args['orderby'] = 'term_id';
return $args;},10,2);
強(qiáng)制將排序改為按照term_id排序,現(xiàn)在,查詢肯定很快。
上面那條語句放棄優(yōu)化,2秒可以接受。
基本上網(wǎng)站后臺頁面沒有之前那么卡了,至于前臺頁面的優(yōu)化,需要根據(jù)主題代碼來優(yōu)化,這邊推薦安裝緩存加速類的插件解決前臺訪問慢的問題。
上面的調(diào)整,請?jiān)趯I(yè)的技術(shù)人員下操作。如果您有類似優(yōu)化需求,可以聯(lián)系我們處理,聯(lián)系方式:http://www.kyotomoriagedaisakusen.com/
本文來源:http://www.kyotomoriagedaisakusen.com/tutorials/246.html
版權(quán)聲明:本文為向前網(wǎng)絡(luò)工作室,未經(jīng)站長允許不得轉(zhuǎn)載。