Доброго времени суток!
Нужно написать программку для неких своих нужд. Стал обдумывать архитектуру базы данных, хочу сделать именно правильно, а не абы как). Подразумевается, что будет поток данных который состоит из атрибутов user, action. И поле user и action будут являться связанными ключами на другие таблицы.
Каждый пользователь генерит около 20-50 событий в сутки, пользователей со временем может стать очень много (несколько тысяч, возможно более). Наиболее частые запросы будут на выборку:
- Получить все события пользователя в интервале дат(обычно 7 дней).
- Поиск определенного события учитывая пользователя за несколько недель/месяцев.
Смущает меня такой момент: при большом кол-ве записей в таблицу "События" будет просадка по запросам написанным выше, если будет несколько миллионов записей и запросов будет пусть 1к в день к такой таблице - наверно будет высокая нагрузка? Возможно лучше организовать структуру как-то иначе? Как на счёт схем в постгресе? К примеру отдельная схема на пользователя, а таблица actions будет в отдельной схеме доступной всем. Тогда получится несколько тысяч схем. Удобно ли это сопровождать, несет ли это дополнительные накладные расходы или наоборот хороший вариант?
Возможно вообще нужно пойти в сторону баз временных рядов - клик хаус?
В базах данных я прям не специалист, особенно в вопросах расчёта нагрузок и проектированию - поэтому прошу воздержаться от токсичных высказываний, а помочь грамотным советом от специалистов в таком вопросе )