WordPress генерирует медленные MySQL запросы - это проблема индекса? - PullRequest
0 голосов
/ 15 марта 2010

У меня очень медленные Mysql-запросы, поступающие с моего сайта WordPress.Это делает все медленно, и я думаю, что это поглощает использование процессора.Я вставил результаты объяснения для двух наиболее часто проблемных запросов ниже.Это типичный результат - хотя очень редко запросы, кажется, выполняются с более нормальной скоростью.

У меня есть обычные индексы 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)

Ответы [ 2 ]

1 голос
/ 10 декабря 2010

Проверьте это http://core.trac.wordpress.org/ticket/10964

Проблема в том, что SQL_CALC_NUM_ROWS, WordPress автоматически устанавливает этот параметр при выполнении запроса get_posts, это делает медленный запрос.

0 голосов
/ 15 марта 2010

Вы можете попробовать wp-cache плагин. Также вы можете прочитать эту статью , в которой объясняется, что SQL_CALC_FOUND_ROWS не лучшее решение при запросах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...