parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

нужен совет по оптимизации запроса

agat 29.05.2007 10:37

В статистике медленных запросов сайта стали появлятся строки. Запрос исполняется по 20-30 секунд. Вот пример
SELECT
DAYOFMONTH(dt_published) AS day,
MONTH(dt_published) AS month,
YEAR(dt_published) AS year
FROM
groups,
article,
article_translation
WHERE
groups.id = article.group_id
AND
article_translation.article_id = article.id
AND
article_translation.lang_id = 1
AND article.is_active = 1
AND groups.type_is & 65 = 65
AND article.dt_published <= '2007-05-28 23:00:44'
GROUP BY
year DESC,
month DESC,
day DESC; 
Считано рядов: 339
(tmp): 28095

Запрос строит таблицу для календаря новостей по Мишиному примеру.

Как я понимаю вся нагрузка идет из-за группировки по трем полям? Подскажите, как можно оптимизировать и ускорить запрос?Может где индексы не проставлены?

Вариант с кешированием запроса не подходит, т.к. новости добавляются каждые 10-20 минут,и приходится на каждой новой новости сбрасывать кеш.

Дам любую информацию для решения вопроса, просто я не знаю что тут может пригодится.