72 похожих чатов

Есть такой вопрос. Начинаю писать дипломный проект - соц. сеть

кулинарных рецептов, соответственно будут юзеры, посты с рецептами, фолловеры (основные сущности). Вот остановился на построении архитектуры. Смотрел на реляционные базы в частности постгрес, как стандартное решение. Но вот если у нас будет оочень много юзеров, постов и т.д., запросы джоинов буду проходить очень медленно (такие, как сделать сначала выдачу постов юзеров, за которыми следит данный пользователь). Потом пошел к NoSQL решениям, смотрел Кассандру - но в ней не получится сделать то, что нужно (например отфильтровать посты по кол-ву ингредиентов (ну сами понимаете, как устроена Кассандра)). Смотрел графовые БД, Neo4j, но они не очень предназначены для хранения больших данных, запросы тоже будут идти долго. Потом решил загуглить как устроен Интсаграмм, они как-то умудряются юзать и Кассандру и Постгрес, не знаю как. Ну ок. Решил всё таки остановится на Постгресе. Но вопрос в том как с помощью системы кеширования (Редис, например) ускорить время ответа на запрос. Можно ли делать так? Берем 1000 грубо говоря постов с постгреса и кладём в Редис, ну и потом уже с клиента идём в Редис и пагиннируем (с лимитом 12 постов допустим) эти посты и возвращаем нужное клиенту? Или можно как-то по-другому это реализовать? Подскажите пожалуйста, буду очень благодарен)

4 ответов

17 просмотров

Как у вас все интересно медленно получилось еще даже без какой либо реализации 😄 Ни сколько пользователей предполагается, ни сколько постов предполагается, ни каких цифр, но все медленно, даже на касандре 😅

По-моему вы слишком заранее оптимизируете. Просто набросайте архитектуру для ваших требований, надо будет нормализовать данные в каком-то виде? нормализуйте! надо будет кешить какие-то выборки? ну используете редис для сохранения ответа от бд при конкретном запросе, а не переносите бд из постгреса в редис!

С Closure table можно уже много джойнов оптимизировать, если структура вроде форума. https://bitworks.software/en/2017-10-20-storing-trees-in-rdbms.html

Похожие вопросы

Обсуждают сегодня

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта