Тяжелый запрос 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 вызывает это?
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