WordPress十萬篇文章數據庫優化指南
本文有643個文字,大小約為3KB,預計閱讀時間2分鐘
原文標題:WordPress十萬篇文章數據庫優化指南
WordPress網站訪問慢,一般是數據庫查詢語句執行慢導致的。
例如:查詢語句如下
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
/* 受影響記錄行數: 0 已找到記錄行: 5 警告: 0 持續時間 1 查詢: 15.016 秒. */
上面一條語句執行要15秒,這未免太慢了。
通過改WordPress代碼中的查詢語句,肯定可以解決這些問題,但問題是,如果要改sql語句,勢必要改很多代碼,這個方法我不推薦。
有的人可能說加索引,但加上索引后,發現執行還是很慢。原因是,有的查詢語句未必會用到索引,所以,這個方法我也不推薦。
其實WordPress慢的原因,很大一部分跟wp_posts表查詢有關,仔細觀察這個表,你會發現這個表引擎是InnoDB,MySQL有個非常適合查詢的表引擎是MyISAM,如果把這個表引擎改為MyISAM是否會更快了?
改變表引擎:
ALTER TABLE `wp_posts`
COLLATE='utf8mb4_unicode_520_ci',
ENGINE=MyISAM,
CONVERT TO CHARSET utf8mb4 COLLATE 'utf8mb4_unicode_520_ci';
改完后,再次執行查詢語句
/* 受影響記錄行數: 0 已找到記錄行: 5 警告: 0 持續時間 1 查詢: 0.750 秒. */
速度提升了,由15.016秒變為了0.750秒,這速度已經很快了。
為了測試,那我就將整個數據庫中的所有表引擎都改為MyISAM試試。

改完之后,WordPress后臺文章列表頁面基本上可以4秒左右打開。

后臺標簽頁面由于排序導致頁面加載慢,可以通過代碼修改排序規則。
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
/* 受影響記錄行數: 0 已找到記錄行: 20 警告: 0 持續時間 1 查詢: 18.485 秒. */
這個只能改查詢語句了。
add_filter('get_terms_args',function ($args, $taxonomies ){
$args['orderby'] = 'term_id';
return $args;},10,2);
強制將排序改為按照term_id排序,現在,查詢肯定很快。

上面那條語句放棄優化,2秒可以接受。
基本上網站后臺頁面沒有之前那么卡了,至于前臺頁面的優化,需要根據主題代碼來優化,這邊推薦安裝緩存加速類的插件解決前臺訪問慢的問題。
上面的調整,請在專業的技術人員下操作。如果您有類似優化需求,可以聯系我們處理,聯系方式:http://www.kyotomoriagedaisakusen.com/
本文來源:http://www.kyotomoriagedaisakusen.com/tutorials/246.html
版權聲明:本文為向前網絡工作室,未經站長允許不得轉載。

獲得更多外貿訂單