один сложный запрос или много маленьких?

alexey84

phplancer
один сложный запрос или много маленьких?

есть такая структура:
в одной таблице хранятся темы новостей, в другой новости
на странице нужно выводить сначало тему под ней анонсы принадлежащие ей.
самое простое решение, это прочитать сначало все темы, а потом через цикл читать все новости данной темы и выводить на экран. Но тут цикл в цикле как то не нравится. Можно ли всю эту операцию провести одним запросом, так чтобы для каждой темы читать не все новости, а допустим только по 3? или 1 вариант лучше чем все делать одним запросом.
 

GrayHound

Новичок
alexey84
есть у меня один идиоцкий способ.
Нужно просто читать первым запросов темы, вторым - новости. Сохранять всё в массив и уже делать поиск по ним.

Второе - кеширование. Можно сделать вывод темы+новости из кэша. Т.е. если в кэше есть - просто выводит из него и не выполнять скрипты. Но тут нужно продумать систему по поводу добавления новых, так что понадобится хороший класс. Советую кеширавать для каждой новости в файл типа:
/новости/тема_новостей/ и обновление данного кеша при добавлении новости делать.

Можно комбинировать. Кэш в пару часов (если вообще не постоянный, до обновлений) точно спасёт ситуацию. Изначальное сохранение всех результатов в массивы - меньше запросов к бд и меньшее количество используемых подключений (в иделае вообще нужно пользоваться только одним)

Одним запросом я думаю не выйдет. 2 как минимум (а лучше 2 вообще, больше не понадобится)
 

alexey84

phplancer
кэш у меня в цмске есть, страница и так кэшируется, с этим все ок, мне просто интересно можно ли создать такой запрос
 
Сверху