Mysql
為什麼我的查詢變得很慢?
我擁有一個 WordPress 安裝,並更新到 3.4.1。
升級後,我經歷了一個非常奇怪的減速。
畢竟我用過
define('SAVEQUERIES', true);
在我的 wp-config.php 中,結合我的主題 footer.php 中的以下程式碼
global $wpdb; echo "<pre>"; print_r($wpdb->queries); echo "</pre>";
我發現雖然我沒有很多查詢(我收到了 49 個查詢),但有
- 4 個查詢耗時超過 9''
- 3 個查詢耗時超過 8 英寸
- 4 個查詢耗時超過 7''
- 4 個查詢耗時超過 6''
- 8 個查詢耗時超過 5''
- 1 個查詢耗時超過 4''
在這裡,我將向您展示一些查詢:
/* Execution time 7.0095062E-5 */ SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('category') AND tt.count > 0 ORDER BY t.name ASC /* Execution time 5.3167343E-5 */ SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (77375,77379,77381) /* Execution time 9.2029572E-5 */ SELECT wp_posts.* FROM wp_posts WHERE ID IN (77381,77379,77375)
在大多數查詢中,查詢很簡單,沒有復雜性。我無法想像為什麼查詢這麼慢。
WordPress 數據庫包含大約 60,000 條記錄並在 Percona-Server 上執行。
關於問題可能是什麼以及如何解決它的任何想法?
看看你的問題中的查詢
/* Execution time 7.0095062E-5 */ SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('category') AND tt.count > 0 ORDER BY t.name ASC /* Execution time 5.3167343E-5 */ SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (77375,77379,77381) /* Execution time 9.2029572E-5 */ SELECT wp_posts.* FROM wp_posts WHERE ID IN (77381,77379,77375)
查看上面每個查詢的執行時間
- 7.0095062E-5 是 0.000070095062 秒
- 5.3167343E-5 是 0.000053167343 秒
- 9.2029572E-5 是 0.000092029572 秒
SQL 查詢本身很快。
請閱讀有關 WordPress 3.4.1 的任何發行說明,以查看 WordPress 升級是否安裝了任何需要調整或停用的數據庫相關模組。此外,請檢查在升級過程中添加的任何可能導致表膨脹的數據。