簡體   English   中英

Wordpress一直在執行這個SQL查詢?

[英]Wordpress is executing this SQL query all the time?

我的Wordpress網站沒有很多流量,但我通過“SHOW PROCESS”繼續看到這個SQL查詢 在MySQL中:

SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID
FROM wp_posts
WHERE 1=1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish')
ORDER BY wp_posts.post_date DESC LIMIT 0, 10

我已關閉所有插件並更新到最新的Wordpress版本(4.1)。 我還使用WordPress(2014)內置的默認主題。

每當我運行“SHOW PROCESS;”時,我都可以看到至少有3-8個查詢正在運行,有時甚至更多,比如此查詢的10+,而流量非常輕(甚至空閑)。

我問,因為MySQL正在使用大量的CPU資源,我想知道為什么這個查詢每秒都會多次顯示我運行“SHOW PROCESS”。

你所看到的是正常的和預期的,你無能為力。 在頁面加載上最多有30個SQL查詢是正常的。 應該檢查更多。

那么所有這些查詢是什么?它們來自哪里?

  • 每個頁面加載時,即使在404頁面上,或者當一堆垃圾進入URL字段/地址欄時,也會執行主查詢。 URL在查詢參數中被解析和轉換, WP_Query使用它根據來自URL的參數從db中檢索帖子。 WP_Query將所有參數和請求轉換為單個SQL查詢,它用於與數據庫通信以檢索對其的詢問。 這是一個db命中,你無法做任何事情,大多數可能這是你的問題中的SQL查詢。

  • 任何自定義查詢( new WP_Queryget_postsget_pages )都將轉換為SQL查詢,以便從數據庫中查詢和檢索帖子

  • 導航菜單使用轉換為SQL查詢的函數來構造主導航菜單

  • 用於顯示附加到帖子的標簽,術語和類別的函數使用SQL查詢從DB檢索標簽/術語/類別

  • 大多數默認widgtes使用自定義查詢和/或使用SQL查詢從db獲取信息的函數

  • 某些條件標記使用SQL查詢來檢查數據庫中條目的條件

  • 在頁面上,主查詢進行額外的SQL查詢以檢索用於特定頁面的頁面模板

  • Wordpress運行一些在后台使用SQL查詢的進程

  • 相關或熱門的帖子部分還使用自定義查詢,這些查詢在SQL查詢中進行轉換以檢索相關帖子

這些只是在每個頁面加載時自動命中數據庫的一些內容,有些可以控制,有些則無法控制,但在一天結束時,如果沒有這些查詢,您將無法在頁面中獲得視覺體驗或功能

我建議您在測試安裝中下載並安裝Query Monitor 不要在生產站點上運行此工具,因為信息會直接打印到屏幕上。 此工具打印出每個頁面加載的所有查詢/ db命中以及執行這些查詢所需的時間。 有了這個,你就可以很好地了解發生了什么以及哪些功能擊中了數據庫。

正如我已經說過的,在單個頁面加載上最多有30個SQL查詢(db命中)是正常的。 更多應該檢查這一點,這通常可以通過優化您的代碼來糾正

要記住和考慮的最重要因素是查詢量與執行它們所花費的實際時間 這應該是決定走哪條路線的最重要因素。 我過去曾多次表明,四個構造良好的查詢有時比一次查詢所需要的一個查詢快10倍。

此外,在無法簡化的大型操作上正確使用緩存和瞬態。 在某些階段,無論您嘗試什么,您都會遇到70分貝命中的查詢。

編輯

只是要添加,流量不會增加或減少默認情況下在給定頁面上運行的SQL查詢量。 SQL查詢的數量完全取決於為完全加載頁面而運行的進程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM