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

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

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

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

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

Преждевременная оптимизация - зло. Начните с простых, давно уже известных вещей. А затем уже, по мере выявления узких мест - оптимизируйте.
Ответ написан