2010-03-15 102 views
0

我有很慢的Mysql查詢來自我的WordPress站點。它使一切都變得緩慢,我認爲這會消耗CPU使用量。我已經將解釋結果粘貼到下面兩個最常見問題的查詢中。這是一個典型的結果 - 儘管偶爾查詢看起來似乎以更正常的速度執行。wordpress生成緩慢的mysql查詢 - 是索引問題嗎?

我在數據庫表上有通常的wordpress索引。您會看到其中一個查詢是由wordpress核心代碼生成的,而不是來自我的網站的任何特定主題。

我有一個模糊的感覺,數據庫並不總是使用索引/不使用它們正確...

這是正確的?有誰知道如何修理它?或者完全是一個不同的問題?

提前任何幫助,任何人都非常感謝能提供 - 這是非常感激

查詢:WP-博客 - header.php文件(14):WP()]

SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') ORDER BY wp_posts.post_date DESC LIMIT 0, 6 
id 
select_type 
table 
type 
possible_keys 
key 
key_len 
ref 
rows 
Extra 
1 
SIMPLE 
wp_posts 
ref 
type_status_date 
type_status_date 
63 
const 
427 
Using where; Using filesort 
Query time: 34.2829 (ms) 

9)查詢:可溼性粉劑內容/主題/ LMHR/index.php文件(40):query_posts()]

SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID NOT IN (SELECT tr.object_id FROM wp_term_relationships AS tr INNER JOIN wp_term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy = 'category' AND tt.term_id IN ('217', '218', '223', '224')) AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') ORDER BY wp_posts.post_date DESC LIMIT 0, 6 
id 
select_type 
table 
type 
possible_keys 
key 
key_len 
ref 
rows 
Extra 
1 
PRIMARY 
wp_posts 
ref 
type_status_date 
type_status_date 
63 
const 
427 
Using where; Using filesort 
2 
DEPENDENT SUBQUERY 
tr 
ref 
PRIMARY,term_taxonomy_id 
PRIMARY 
8 
func 
1 
Using index 
2 
DEPENDENT SUBQUERY 
tt 
eq_ref 
PRIMARY,term_id_taxonomy,taxonomy 
PRIMARY 
8 
antin1_lovemusic2010.tr.term_taxonomy_id 
1 
Using where 
Query time: 70.3900 (ms) 
+0

我編輯你的查詢看起來像代碼,但我不明白什麼文字和結束。你是否從某個地方粘貼了這些內容,並在某處收到了不良文字? – 2010-03-15 15:31:36

+0

@JS Bangs我認爲這是MySQL從網格中「解釋」命令的結果。 – antyrat 2010-03-15 15:33:44

回答

0

你可以試試wp-cache插件。 你也可以閱讀這個article它解釋說,SQL_CALC_FOUND_ROWS不是最好的解決方案。

+0

@JS Bangs @antyrat 謝謝你這麼快看! 是 - 這是一個解釋結果(實際上是從Wp-Tuner插件生成的)。最後一點是Explain所說的數據庫正在做的事情以及需要很長時間去做的事情...... – tash 2010-03-15 15:37:29

+0

我有WP超級緩存運行 - 但是wp-blog-header查詢是在頁面加載之前生成的,所以緩存不能幫助這個領域。 另外我想解決如果可能的話緩慢的Mysql查詢,而不是緩存緩慢的結果。 – tash 2010-03-15 15:39:17

+0

@tash你有多少條目在你的數據庫wt wp_posts表中? – antyrat 2010-03-15 15:50:48