Вордпресс, виснут все запросы!

12
MB
На сайте с 24.02.2009
Offline
182
1990

На данный момент беда с вордпрессом,

виснут практически все запросы, вот выдержка из лога медленных запросов


SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts WHERE 1=1 AND YEAR(wp_posts.post_date)='2012' AND MONTH(wp_posts.post_date)='8' AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') ORDER BY wp_posts.post_date DESC LIMIT 0, 10;
# Time: 120805 15:31:54
# User@Host: db[db] @ localhost []
# Query_time: 10.195300 Lock_time: 0.000075 Rows_sent: 10 Rows_examined: 259974
SET timestamp=1344166314;
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.post_date DESC LIMIT 19320, 10;
# Time: 120805 15:33:41
# User@Host: db[db] @ localhost []
# Query_time: 13.866298 Lock_time: 0.000070 Rows_sent: 10 Rows_examined: 259974
SET timestamp=1344166421;
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.post_date DESC LIMIT 19360, 10;
# User@Host: db[db] @ localhost []
# Query_time: 12.914796 Lock_time: 0.000080 Rows_sent: 10 Rows_examined: 259974
SET timestamp=1344166421;
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.post_date DESC LIMIT 150, 10;

размер базы 430мб, wp_posts 260000 постов.

нагрузка на базу 10 запросов в секунду

кеширование включено

сервер

CPU 2x3000 MHZ X 2

ОЗУ 2гб

конфиг mysql

[mysqld]

port = 3306

socket = /tmp/mysql.sock

skip-locking

skip-innodb

query_cache_type = 1

query_cache_limit = 2M

query_cache_size = 32M

key_buffer_size = 64M

max_allowed_packet = 4M

table_open_cache = 256

sort_buffer_size = 2M

read_buffer_size = 2M

read_rnd_buffer_size = 2M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

concurrent_insert = 2

low_priority_updates = 1

пробовал переезжать на более мощный сервер, толку мало, похоже вордпресс просто не тянет такой размер базы данных.

что нибудь можно сделать или просто тупо сносить половину записей из БД?

может ещё вариант с разделением БД на несколько БД?

Himiko
На сайте с 28.08.2008
Offline
560
#1

Я бы разобрался, что это за запрос такой, которому нужно перебирать все записи. Полагаю, что можно как то упростить.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
MB
На сайте с 24.02.2009
Offline
182
#2
Himiko:
Я бы разобрался, что это за запрос такой, которому нужно перебирать все записи. Полагаю, что можно как то упростить.

это переключения между страницами, вот именно они и виснут, так уж устроен вордпресс, что при переключении страниц он перетряхивает всю базу.

пытаюсь сейчас через htaccess запретить ходить на страницы выше 999 может хоть это немного снизит нагрузку.

может кто подскажет правило для htaccess весь инет перерыл не нашёл способ закрыть страницы выше 999 ?

Andreyka
На сайте с 19.02.2005
Offline
822
#3

Поставь себе плагин кеширования и забудь об этой проблеме

Не стоит плодить сущности без необходимости
MB
На сайте с 24.02.2009
Offline
182
#4
Andreyka:
Поставь себе плагин кеширования и забудь об этой проблеме

hyper-cache стоит уже как 2 года, толк от него только при повторном обращении к странице.

Andreyka
На сайте с 19.02.2005
Offline
822
#5

Ну так все страницы в кеш загнать, не?

SeVlad
На сайте с 03.11.2008
Offline
1609
#6
Mister_Black:
это переключения между страницами, вот именно они и виснут, так уж устроен вордпресс, что при переключении страниц он перетряхивает всю базу.

Бред какой-то. Причем тут "переключение страниц"? Это воще что за термин-то такой? Обычный вызов страницы.

100 пудов какой-то плаг или тема виновата.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
N
На сайте с 06.05.2007
Offline
419
#7
Himiko:
Я бы разобрался, что это за запрос такой, которому нужно перебирать все записи. Полагаю, что можно как то упростить.

ничего нельзя.

Источник проблемы в том, что сео-сайты продуцируют или скупают контент, а не накапливают его естественным образом как это задумано в wordpress.

Если бы вы действительно написали 259974 постов, то у вас бы были и средства и ресурсы и ничего бы не тормозило.

Удалите всю фигню и залетает.

Кнопка вызова админа ()
P
На сайте с 16.03.2009
Offline
144
#8

Для начала дайте mysql больше ресурсов - у вас же целых 2гб оперативки.

Прогоните mysqltunerом, покрутите и посмотрите как будет работать.

KU
На сайте с 17.07.2008
Offline
251
#9

Уберите калькуляцию количества новостей напротив категорий.

Хостинг ( https://good-host.net ) / Linux VPS ( https://good-host.net/vps ) / Windows VPS ( https://good-host.net/windows-vps ) / Выделенные серверы ( https://good-host.net/dedicated ) 14 лет онлайн!
Himiko
На сайте с 28.08.2008
Offline
560
#10
KM.UA:
Уберите калькуляцию количества новостей напротив категорий.

Вот дельный совет.

Не должен при переключении страниц генерироваться такой запрос.

По идее, при переключении страниц нужно выбрать из базы конкретное количество данных с отступом от начала. Но никак не перебирать абсолютно все записи.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий