使用 Query Monitor 抓出隱藏在背後的兇手

不少人都知道為了加速網站,可以使用快取外掛,不論是 WP Super Cache、WP Rocket、w3 Total Cache⋯⋯等,不過在使用快取外掛前,你有先釐清網站為什麼慢嗎?為什麼快取外掛裝了後台還是很慢?
這次談的是後台,比較常見的可能,但你可能不知道隱藏在背後的關鍵。

一切先從安裝 Query Monitor 這個外掛,他可以展示出當網站載入這個頁面時,做了哪些資料庫查詢、花費的時間,以及甚麼外掛做了什麼事。

裝上 Query Monitor 後網站上方會多了一段文字,上面有這個頁面生成的時間、耗費的記憶體、資料庫的查詢時間以及做了哪些查詢。

點開後,在下方就會出現一個區塊,顯示著這個頁面的相關資訊。


在 Queries 那欄中,可以看到網站做了哪些資料庫查詢,最右邊則是查詢時間,如果太高,例如多達 0.5 秒甚至超過 1 秒,有幾種可能,資料庫龐大所以查詢起來緩慢,主機不堪負荷所以查詢很慢,或是有外掛的 Query 寫得很爛,不過就可以先看到,是不是在做資料庫查詢時拖慢了後台的速度。

我就看過資料庫內 wp_options 多達 1G 的案例,文章過多的歷史版本,垃圾桶沒在清理,導致 wp_posts 內也很大,這樣就有待最佳化資料庫,或是使用 Redis 等快取方案,再看是不是速度變快了點。

如果 Queries 耗費的時間不多,我看過最常會拖垮速度的是 HTTP API Calls,進入後台,WordPress 會順便查詢是不是有更新,我偶爾注意到 WordPress 官方的 API 回應的速度很慢,甚至多達 4 秒,因此在後台載入時,整整白畫面超過 4  秒以上,這時候你就會覺得網站後台超慢。

解決方法其實也蠻簡單的,檢查主機與 WordPress 官方 API 的連線狀況、使用 Hook 阻止他檢查,或是改個 host 讓他連不上,這時候就不會被卡住。

先透過工具釐清問題,再解決問題,不然只是加上快取是幫不了 HTTP API Calls 或是其他因素導致得慢。

作者: cras4202tw

我是 cras4202tw,有多年使用 WordPress 與伺服器維運經驗,目前在鴻海科技集團富盈數據擔任工程師,負責的網站總流量每個月超過千萬次瀏覽。更多關於我...點我

臉書留言

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *