继夫的玩弄H辣文的小说|女人与拘性猛交视频|精品欧美高清不卡高清|一起做亏亏的事情的视频|啦啦啦在线视频观看|望月直播下载ios版本|国产日韩欧美一区二区三区

WordPress 文章超過10萬就會負載很高,是不是不適合做大網站?

這個問題是所有使用 WordPress 建站到一定規模之后都會碰到的問題,一般人的對此問題也都是泛泛而談,都是那些常見的處理方式 , 沒有具體如何去定位 WordPress 慢這個問題的方法 , 定位之后如何解決也沒有 。
我也接過很多 WordPress 優化的單子,所以我結合自己經驗決定講講自己是如何處理的 。
基礎優化
首先提供三點簡單的優化建議:
將 WordPress 更新到 6.1,因為 WordPress 6.1 無需插件即可實現站點 0 SQL,這個操作是最直接最有效的 。WordPress 性能優化的基礎是一款速度夠快的主題,很多 WordPress 站點速度很慢,絕大部分原因就是主題 。對 WordPress 進行基本的優化,WordPress 性能優化:為什么我的博客比你的快 , 我這篇文章已經做了非常詳細的介紹,主要是兩點:使用 CDN 對動靜態資源進行分離和使用 Memcached 來緩存 WordPress 數據 。可能的原因
做了上面三點簡單的基礎優化的操作之后,速度還是很慢 , 那應該如何辦?根據我的經驗,WordPress 速度太慢 , 一般來說可能是下面這些原因:
頁面的 SQL 請求太多了,把數據庫的請求池耗盡了 。HTTP 請求太多 , 并且都沒有做緩存,占用了太多的服務器資源 。主題或者插件的 PHP 程序代碼沒寫好 , 甚至有死循環,直接卡死 。Log 程序
如何定位這些問題呢?工欲善其事,必先利其器,所以我寫了一個 WordPress 各種 Log 記錄的插件,專門來定位這些問題:

WordPress 文章超過10萬就會負載很高,是不是不適合做大網站?

文章插圖
如上圖所示,首先這個插件會每天孜孜不倦記錄程序的錯誤或者警告 , 這樣我就可以根據這個錯誤來優化和健壯程序,很多時候,用戶是無法清洗反饋清楚自己的錯誤的,只是說程序有問題,通過 Log 反而容易定位代碼的,比如上面的 PHP log :
我截取其中一段,就可以記錄一個 PHP Warning 信息,PHP 數組 Undefined index 的問題,具體發生在哪個文件哪一行,具體的回調過程,請求的時間,地址,來源,Post 提交的數據都記錄一下,對解決問題是幫助非常大 。
上圖中還有 weapp 和 weixin 相關的 log,是我為了區分方便處理,把微信公眾號和微信小程序插件相關的錯誤拆分到不同的文件,然后每個文件都加上日期 , 這樣每天的 log 都會被記錄下來 。
定位問題
你肯定會問,這個 log 記錄系統和 WordPress 慢有什么關系?
其實大有關系了,通過 Log 是定位問題最好的方法,為了解決程序慢的問題,我還專門對超過5秒才能打開頁面的做了詳細的記錄 。
我會記錄這個頁面,調用的時間 , 地址,傳遞的 POST 數據(如有),來源和具體耗時多少秒:
WordPress 文章超過10萬就會負載很高,是不是不適合做大網站?

文章插圖
這個慢查詢 Log 會記錄這個頁面的所有 SQL 請求,共有多少條 SQL 請求 , 每條 SQL 具體是什么 , 耗時以及調用棧:
WordPress 文章超過10萬就會負載很高,是不是不適合做大網站?

文章插圖
如果有 HTTP 請求,慢查詢 Log 也會記錄所有的 HTTP 請求,每條 HTTP 請求的鏈接,參數,耗時和調用棧:
WordPress 文章超過10萬就會負載很高,是不是不適合做大網站?

文章插圖
解決問題
定位了問題之后 , 解決起來就非常方便了 。
如果是 SQL 請求太多,是不是在 for 循環里面做了 SQL 請求?如果是 , 就應該在 for 循環之前,就應該通過所有 id 一次獲取數據 , 這樣就不會一次耗盡數據庫線程 。
如果是 HTTP 請求太慢 , 是不是可以把請求的結果緩存到 Memcached 中,這樣下次就無需遠程的 HTTP 請求,直接從內存中獲取即可 。
舉個具體的例子,一般來說相關文章是通過文章的標簽的相關來生成的,這樣就需要使用到文章和標簽的關聯表(wp_term_relationships)和文章表(wp_posts)進行連表查詢,根據文章相關度進行排序 , 我見過一些文章數和標簽數多的站點,這樣的一條 SQL 查詢經常會 5-10 秒,這樣的慢查詢經常把站點搞掛 。
【WordPress 文章超過10萬就會負載很高,是不是不適合做大網站?】我是如何優化的呢?放棄連表的 , 首先獲取當前文章的標簽,然后從文章和標簽的關聯表(wp_term_relationships)根據這些標簽獲取最相關的文章 ID,并且多獲取一些,比如要獲取5篇,我就至少獲取10篇,然后把獲取的文章 ID , 從文章表(wp_posts)中獲取具體的數據,舍棄到那些不符合文章類型和狀態的,剩下的就符合要求了 , 剩下的不夠,就繼續上述的方法在找一些直至數量夠了 。這樣通過 PHP 腳本進行優化,相關文章造成的性能問題就能得到完美的解決 。