очень много запросов такого типа
# Time: 131223 1:30:05 # Query_time: 8.242014 Lock_time: 0.000085 Rows_sent: 10 Rows_examined: 8765 SET timestamp=1387762205; SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') ORDER BY wp_posts.post_date DESC LIMIT 20, 10;
гугление не помогло, куча тем, люди жалуются на тормоза, им пишут ответы-отмазки типа поставьте кеш-плагин
плагины на сайте стоят но кажется что толку 0
кто может дать нормальный совет как исправить ситуацию?
Это запрос выборки постов для основного Цикла WordPress (по крайней мере очень-очень похож). Если его "отключить", то… фильм "Старик Хоттабыч" видели? помните, что случилось с самолетом, когда Хоттабыч сделал так, чтобы двигатели не шумели?
Резкое снижение скорости обработки запросов бывает связано с отключением индексов в таблицах. Проверьте в phpmyadmin.
А принципиально "исправить ситуацию" можно только одним способом – выбирать хостинг адекватный требования движка.
база стандартная вордпресовская
какие индексы проверить? на какие таблицы\поля?
Все индексы во всех таблицах. Должны быть цифры у кол-ва элементов и не должно быть надписей disabled
Подробности найдете в документации mysql и PMA и на специализированных форумах.
что такое индексы, как их ставить это понятно
не понятно, на какие поля и в каких таблицах нужно поставить индексы, чтобы ускорить тяжелые запросы
вот индексы в таблице posts

post_title нету, но в запросе это поле не фигурирует
индекс на поля post_type и post_status стоит, тогда почему медленно выполняется запрос?
http://habrahabr.ru/post/31129/
Причин может быть вагон и маленькая тележка. Начиная от физического дефекта носителя и заканчивая особенностями настройки сервера.
Кстати, мне однажды удалось уменьшить время выполнения запроса в тысячу(!) раз простым обновлением mysql до последней актуальной версии.
вот что показывает explain
что можно исправить?
Тот же запрос через PMA сколько выполняется? По идее должно быть от 0.1 до 10 ms.
Отличное время! Оставьте запрос в покое.
тогда почему этот же запрос отрабатывает из самого вордпресса за 8 секунд? и помещается в лог долгих запросов
Query_time: 8.242014
Хороший вопрос. Но боюсь, моих телепатических способностей не достаточно для диагностирования такого трабла. Такие проблемы и с полным (рутовым) доступом к "телу" не всегда удается победить. А я даже не знаю, на чем это всё у Вас крутится. Могу только предположить, что имеет место катастрофическая нехватка памяти у сервера, и процесс уходит в своп.
ну а если ткнуть пальцем в небо?
насколько я знаю, время выполнения запроса в пма нельзя принимать в расчет потому что там свои механизмы
Механизм там совершенно тот же самый – запрос к тому же самому демону mysqld. Остальное – влияние окружения, в т.ч. общей нагрузки на процессор, кол-во запросов, доступная память… всё влияет, и чем хилее сервер, тем больше взаимное влияние процессов.
Впрочем, можете поставить плагин http://wordpress.org/plugins/debug-bar/ (есть и другие) и посмотреть на время выполнения запросов в реальном движке. Чтобы долго не искали, как увидеть запросы, подскажу сразу: define( ‘SAVEQUERIES’, true ); в wp-config.php.
можно ли переписать запрос без Sql_calc_found_rows ? подозреваю именно изза него тормоза
может есть статьи как это сделать?
Можно, с помощью подобного фрагмента:
Но при этом не будет работать постраничная навигация, для которой этот параметр и используется.