Mysql

為什麼我的查詢變得很慢?

  • September 14, 2017

我擁有一個 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 升級是否安裝了任何需要調整或停用的數據庫相關模組。此外,請檢查在升級過程中添加的任何可能導致表膨脹的數據。

引用自:https://dba.stackexchange.com/questions/21246