Limit Вам поможет... берите не все.. а часть
но я бы брал по другому.. выбирал бы все посты от всех пользователей с сортировкой по create TimeStamp ну и конечно limit (Ну допустим 50 постов). + сохранялся бы Id самого первого сообщения и уже от него делал последующие запросы.. т.е. следующий запрос выглядит так.
запросить все посты от таких то пользователей сортировка по времени создания, посты не выше такого ид (из первого запроса) и лимит уже 50,100.
А так же хранил бы всех пользователей (ID) на которые подписан Ваш пользователй.
имхо каждый раз делать выборку из БД не айс... или кеширование.. что тоже не айс при изменении кол-ва подписки..
Спасибо за ответ. Да, лимит используется,
база данных представляет собой
мой_ид|ид_паблишера
и таблица активности, ид_паблишера|текст поста|дата
Я правильно Вас понимаю, запрашиваем не ид всех паблишеров сразу, а только первых 50 и выводим их посты, на странице 2 запрашиваем следующие 50 ...и их посты?
запрос первых 50 постов от всех ид паблешеров которые это писали. после запроса сохранить max ID постов и во твором запросе его использовать.. типа такого
select * FROM Post WHERE authorId IN(1...10..100) limit 0,50
далее сохраняем макс id постов и получаем следующее
select * FROM Post WHERE authorId IN(1...10..100) AND id <= $MAXID limit 50, 100
Александр: Пжл.. могут быть подводные камни. но надо смотреть... просто макс ид.. для того что бы при следующем запросе при изменении общего кол-ва постов мы не показали теже самые... ну может еще есть какой алгоритм... я просто на вскидку Вам сказал.. если погуглить на эту тему.. думаю найдется еще что-нибудь.. ведь практически все соцсети на этом построенны..
Александр: Наберите 10К у одного подписчика.. как наберете будете решать данную проблему.. а пока смысл ))) в 1к имхо все норма будет.. я же Вам сказал что лучше хранить все ид на которые подписан пользователь отдельно и не запрашивать их каждый раз.. а взял и взял.. )))) а уж если подписался или отписался тогда менять этот массив.