Задать вопрос
@s_pyanov

Проектирование БД, какую СУБД выбрать?

Доброго времени суток!
Нужно написать программку для неких своих нужд. Стал обдумывать архитектуру базы данных, хочу сделать именно правильно, а не абы как). Подразумевается, что будет поток данных который состоит из атрибутов user, action. И поле user и action будут являться связанными ключами на другие таблицы.
625e6f59f0953223199481.png
Каждый пользователь генерит около 20-50 событий в сутки, пользователей со временем может стать очень много (несколько тысяч, возможно более). Наиболее частые запросы будут на выборку:
- Получить все события пользователя в интервале дат(обычно 7 дней).
- Поиск определенного события учитывая пользователя за несколько недель/месяцев.

Смущает меня такой момент: при большом кол-ве записей в таблицу "События" будет просадка по запросам написанным выше, если будет несколько миллионов записей и запросов будет пусть 1к в день к такой таблице - наверно будет высокая нагрузка? Возможно лучше организовать структуру как-то иначе? Как на счёт схем в постгресе? К примеру отдельная схема на пользователя, а таблица actions будет в отдельной схеме доступной всем. Тогда получится несколько тысяч схем. Удобно ли это сопровождать, несет ли это дополнительные накладные расходы или наоборот хороший вариант?
Возможно вообще нужно пойти в сторону баз временных рядов - клик хаус?

В базах данных я прям не специалист, особенно в вопросах расчёта нагрузок и проектированию - поэтому прошу воздержаться от токсичных высказываний, а помочь грамотным советом от специалистов в таком вопросе )
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 2
@Akela_wolf
Extreme Programmer
Ваши нагрузки легко выдержит любая SQL СУБД - MySQL, PostgreSQL.

Преждевременная оптимизация - зло. Начните с простых, давно уже известных вещей. А затем уже, по мере выявления узких мест - оптимизируйте.
Ответ написан
@Vitsliputsli
Вполне нормальная структура. Нагрузка низкая. СУБД та, которую лучше знаете (это актуально и для высоких нагрузок, тот же MySQL прекрасно себя показывает на высоких нагрузках, если вы его используете как базу данных, и не требуете приготовления кофе). Схемы здесь задействовать ни к чему. ClickHouse - это вообще про другое, забудьте до тех пор, пока не понадобится аналитика по большим объемам данных. Главное, не забудьте построить индексы по тем полям, по которым будете формировать выборки.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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