2010-03-15 139 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