Drupal тормозит из-за MySQL, как быть?

Друпалу нужно 300 запросов для генерации одной простой странички. На сервере довольно загруженный MySQL, поэтому наблюдаются тормоза. Можно ли как-нибудь значительно сократить количество запросов к базе у Друпала?

Теги:  ·  ·

Смотрите также

Ответы

Если есть возможность настраивать MySQL, то попробуйте включить кеш запросов. Конфигурационный файл MySQL называется my.cnf. Например, у VPS на FreeBSD + VDSManager обычно лежит в каталоге /etc

Зачастую туда нужно дописать одну строчку

query_cache_size = 50M

Статья на тему кеширования в MySQL - http://habrahabr.ru/blogs/mysql/41166/

Ещё добавьте
query_cache_type=1
Иначе кэшироваться будут только те запросы, для которых оно разрешено. При установке этой строчки будут кэшироваться все, кроме тех, для которых оно запрещено.

Например на нашем хостинге - HostimVse.Ru (простите за рекламу) есть возможность использовать для кеширования Memcached. Тоесть держать кеш в оперативной памяти. Но это актуально только для сайтов с высокой посещаемостью. Не знаю как Drupal, но думаю он тоже должен поддерживать кеширование. Не обязательно именно MySQL запросов, можно просто закешировать страницы целяком.

Довольно действенной мерой может быть использование memcached для запросов к cache_* таблицам. Есть модули для этого. Можно таблицу sessions перевести в тип innodb, если есть проблемы с блокировками. Вообще надо анализировать MySQL, включить slow_query_log и binlog, использовать для их анализа mysqlsla, погонять tuner-primer.sh и mysqltuner.pl, поправить конфиг.

Часто можно использовать кеширование, у друпала есть целый ряд модулей на эту тему: boost, authcache, cacherouter и др.

1. настойка mysql;
2. кеш.

Отправить комментарий

Если вы укажете номера тикетов или имя пользователя, отзыв будет выглядеть убедительнее, а провайдеру будет проще разобраться с вашей проблемой

Подробнее о форматировании

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
5 + 7 14 + 8 плюс 3 6