Сегодня с утра меня порадовал мой хостер, который отрубил все мои сайты. Когда я полез к нему с кулаками вопросами, "какого..." "в чем дело?", мне вежливо ответили, что в папке /tmp/mysql_slow_queries/ лежат логи с медленными запросами в БД, и что - "you have to fix this slow queries".
Смысл в том, что нужно оптимизировать свои скрипты, чтобы БД стала летать. Простая оптимизация БД не убедила службу поддержки, нужно сделать что-то еще.
Подскажите пожалуйста, кто-нить сталкивался с подобными проблемами? Каким образом можно оптимизировать запросы БД в друпале?
P.S.: Вот пример из логов. Все "медленные" запросы разнообразны.
# Query_time: 3 Lock_time: 0 Rows_sent: 1 Rows_examined: 0
use jk
SELECT COUNT(*) FROM node_access WHERE (nid = 0 OR nid = 138) AND ((gid = 0 AND realm + 'all')) AND grant_update >=1
# Web Feb 11 14:58:00 2009
# Query_time: 2 Lock_time: 0 Rows_sent: 1 Rows_examined: 3
use jk_an
SELECT n.nid, n.vid, n.type, n.status, n.created, n.changed, n.comment, n.promote, n.sticky, r.timestamp AS revision_timestamp, r.title, r.body, r.teaser, r.log, r.format, u.uid, u.name, u.picture, u.data FROM node n INNER JOIN users u ON u.uid = n.uid INNER JOIN node_revisions r ON r.vid = n.vid WHERE n.nid = 1525
Комментарии
Скорее всего запросы выбраны из контекста:
SELECT COUNT(*) - жуть.... - используйте какое-нибудь 1 поле сейчас попытка суммировать ВСЕ поля
второй вполне нормальный запрос...
Кеширование, оптимизация базы, крон, смена хостёра.
Про смену хостера я сразу подумал, но это время. А мне нужно придумать что-то сейчас, чтобы они временно включили сайты. Оптимизацию баз данных сделал сразу в пхпмайадмине.
а просто сделать статичными те страницы, которые не нужны динамическими, - не поможет? обычно не все нужны динамикой
1) http://drupal.org/project/db_maintenance">http://drupal.org/project/db_maintenance]http://drupal.org/project/db_ma...
2) Если срочно можно посмотреть откуда запрос - если не core модуль попробовать другое решение или модуль, если core - подумать о смене хоста, или увеличении тарифного плана.