@phantomit

Каким образом сделана выборка новостей в контакте или в фейсбуке?

Каким образом такие сайты,как контакт показывают последние K новостей? И каким образом эти данные кэшируются? Интересует примерная архитектура.
SELECT * FROM Posts where post_author in(SELECT friend_id FROM Users WHERE friend_id = '..') ORDER BY Date Limit 100 полагаю,что такие запросы и такая архитектура не очень подойдут под объемы данных ФБ или ВК?
Если же можете предложить решение с NoSQL - тоже будет очень интересно
  • Вопрос задан
  • 2242 просмотра
Пригласить эксперта
Ответы на вопрос 1
alexclear
@alexclear
A cat
Основное правило работы таких систем - соблюдение локальности данных. Второе правило "одна страница - один SQL запрос" (это если в системе вообще есть SQL). Если об этом долго думать, можно прийти к тому, что оба этих требования довольно логичны. Значит, последние K новостей, как и всю информацию, представляемую на странице пользователя, нужно хранить вместе с пользователем, чтобы доставать ее за один запрос. SQL это или NoSQL - не так важно. Эти данные кэшируются в памяти в специализированном кэше (сделанном, например, на Redis). Обновляются новости, само собой, асинхронно с использованием серверов очередей и специальных сервисов обновления, работающих в бэкграунде.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы