我的WordPress网站上出现了很慢的Mysql查询。它使一切变得缓慢,我认为这会占用CPU使用率。我已经为下面两个最常见问题的查询粘贴了Explain结果。这是一个典型的结果 - 尽管偶尔查询似乎确实以更正常的速度执行。
我在数据库表上有通常的wordpress索引。您将看到其中一个查询是从wordpress核心代码生成的,而不是来自我的网站的任何特定内容(如主题)。
我有一种模糊的感觉,数据库并不总是使用索引/没有正确使用它们......
这是对的吗?有谁知道如何修理它?或者它完全是一个不同的问题?
非常感谢任何人提供的任何帮助 - 非常感谢
查询:[wp-blog-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)查询:[wp-content / themes / 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 :(得分:1)
选中此http://core.trac.wordpress.org/ticket/10964
问题是SQL_CALC_NUM_ROWS,当您执行get_posts查询时,WordPress会自动设置此参数,这会使查询变慢。
答案 1 :(得分:0)