Тяжелый запрос Wordpress MySQL, пожалуйста, помогите мне найти его и оптимизировать



У меня есть сайт wordpress, который достаточно популярен, но за последние пару дней моя производительность сильно снизилась.



Я установил Jet Profiler и следил за базой данных MySQL, чтобы увидеть, могу ли я найти что-то неправильное, и этот запрос последовательно является худшим преступником.



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')  ORDER BY wp_posts.ID ASC LIMIT 0, 1


Моей первой догадкой было бы удалить функцию SQL_CALC_FOUND_ROWS и изменить*, чтобы быть только определенными полями, но я не могу найти, что вызывает это запрос.



Как бы я узнал, какой файл php вызывает это?

716   3  

3 ответов:

Есть хороший шанс, что это ваша первая страница. Я предполагаю, что вы установили кэширование перед WordPress, либо используя WP Super Cache, либо что-то другое (nginx, Кальмар и т. д.). Если нет, то вам не следует заглядывать в базу данных. кэширование критически важно для WP .

Возможно, вы захотите взглянуть на эти две проблемы, опубликованные на их трекере:

Http://core.trac.wordpress.org/ticket/10469

Http://core.trac.wordpress.org/ticket/12557

(обновление: добавлена ссылка)

Окончательное решение состояло в том, что плагин под названием TDO Mini Forms был плохо закодирован и уничтожил мою базу данных.

Так что если у вас когда-нибудь возникнет эта проблема и есть этот плагин, я настоятельно рекомендую удалить его. Он, кажется, даже не существует как допустимый вариант в базе данных плагина больше

Comments

    Ничего не найдено.