Toxic_Cat
Новичок
Нужна помощь в оптимизации простенького запроса
Сам запрос делает следующее: есть категория, он выводит последние новости с одновременным подсчетом комментариев к новостям.
MENTIONS
ment_id = id комментария
ment_pageid = id страницы к которой привязан комментарий
PAGES
page_id = id страницы
page_secid = id раздела страницы
page_date = дата изменения страницы
Но вот не задача. Запрос выполняется аж 0.2 секунды (на локалхосте). На сервере и того больше, аж 0.4 секунды.
С виду проблема в одном: GROUP BY page_id ORDER BY page_date DESC, если заменить на GROUP BY page_date ORDER BY page_date DESC то генерация сокращается аж до 0.01 секунды! Только это решение не красивое, так как у страниц могут совпадать даты и тогда при выводе страницы с одинаковыми датами сгруппируются. Вариант с GROUP BY page_id ORDER BY page_id DESC то же не подходит в виду того, что идентификатор не отвечает за "свежесть" новости.
Уже битый час сижу над решением данной задачи и никак не могу найти, как же вывести последние новости раздела.
Подскажите, пожалуйста, как правильно оформить данный запрос.
Сам запрос делает следующее: есть категория, он выводит последние новости с одновременным подсчетом комментариев к новостям.
PHP:
SELECT *, COUNT(ment_id) as ment_count
FROM pages
LEFT JOIN mentions ON page_id = ment_pageid
WHERE page_secid = 70
GROUP BY page_id
ORDER BY page_date DESC
LIMIT 0, 15
ment_id = id комментария
ment_pageid = id страницы к которой привязан комментарий
PAGES
page_id = id страницы
page_secid = id раздела страницы
page_date = дата изменения страницы
Но вот не задача. Запрос выполняется аж 0.2 секунды (на локалхосте). На сервере и того больше, аж 0.4 секунды.
С виду проблема в одном: GROUP BY page_id ORDER BY page_date DESC, если заменить на GROUP BY page_date ORDER BY page_date DESC то генерация сокращается аж до 0.01 секунды! Только это решение не красивое, так как у страниц могут совпадать даты и тогда при выводе страницы с одинаковыми датами сгруппируются. Вариант с GROUP BY page_id ORDER BY page_id DESC то же не подходит в виду того, что идентификатор не отвечает за "свежесть" новости.
Уже битый час сижу над решением данной задачи и никак не могу найти, как же вывести последние новости раздела.
Подскажите, пожалуйста, как правильно оформить данный запрос.