@Kokoulin
Php senior developer

Структура БД для хранения комментариев?

Дано:
650 млн коментариев (одна таблица)
Id, text, time, rating, related_img, related_link связь с пользователем(20млн записей), статьей(140тыс записей), категорией(50 записей), родительским комментарием(650 млн)
Пиковая нагрузка:
Чтение 50 rps
Запись 7rps
Возможность оставить комментарий к новости исчизает спустя 1 месяц

Задача: сделать нормальную структуру бд для хранения этого

Стек:
pgsql
Symfony 3.2
Doctrine
Redis
  • Вопрос задан
  • 4723 просмотра
Решения вопроса 1
@Kokoulin Автор вопроса
Php senior developer
Всем спасибо за ответы, принято решение хранить комменты в редисе свяжие целиком, старые только указание на место хранения
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Kwisatz
@Kwisatz
Больше web-приложений, хороших и разных
Выглядит как заказ на работу

Вопрос конкретно в чем?
- В связке родителя/потомка? parent_id
- В выборке дерева? with recursive
- Хотите отделить записи по времени? шардинг с условием

UPD:
раз
два
три
Ответ написан
@AlikDex
разбить на 2 таблицы? 1 с новостями месячной давности, остальные в архивную.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Выборка должна быть в 2 этапа (если учитывать, что в базе все индексы стоят верно!).
1. Выбираем все комменты для текущего поста, используя только одну колонку Id.
2. Затем - работаем только с этими комментами из промежуточной выборки (при получении данных для вывода на страницу и т.д.).

3. Можно добавить кросс-связи, если выборка комментариев должна быть не только со стороны поста, но и со стороны конкретного пользователя, категории и т.д.
Ответ написан
Ваш ответ на вопрос

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

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