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

Ребят, насколько жизнеспособна идея сразу создавать "кэш статистики"? есть платежи в

15 категориях
есть условная 1000 человек совершающих эти платежи по 100 раз в сутки (чисто для простоты подсчетов цифры)

простой вариант:
пишем данные в одну таблицу.
когда нужно - получаем SUM(параметр) с условиями.
1000 юзеров по 100 платежей = 100 000 записей в сутки

сложный вариант
пишем данные в таблицу
суммируем с "сумма за все время по конкретному юзеру" (селект + инсерт)
суммируем с "за месяц по конкретному юзеру) (селлект + инсерт)
суммируем с "за день по конкретному юзеру" (селект + инсерт)
1000 юзеров по 100 записей * 4 таблицы = 400 000 записей
1000 юзеров по 100 запросов * 3 таблицы = 300 000 селектов (ок, можно превратит в 100к селектов с джойнами)

с одной стороны за месяц 12 000 000 инсервтов и 3 000 000 селектов (вместо 3 000 000 инсертов)
с другой стороны получить юзеру общую сумму за месяц - 1 запрос, а не SUM 100*30 = 3000 строк.
админу же месячная цифра обойдется в sum 1000 строк, а не 1000*100*30 = 3 000 000 строк.
но кроме того есть статистика за день, за неделю, за месяц/3/6/12 и за все время.

на дневной статистике казалось бы явный проигрыш, просуммировать 100к записей "дешевле" чем сделать 100к селектов и 400к инсертов. но нагрузка растянута по времени при записи, и минимальная при получении статистики.

во полотно накатал... сорян)

10 ответов

10 просмотров

делай пока простой, его на долго хватит, потом когда возникнет необходимость найдешь решение

Алексей- Автор вопроса

да вот заранее хотелось бы решение. так как искать его придется уже через пол года, количество записей траншей довольно большое

обычные данные обязательно оставить. если будут тормозить отчёты - можно из них начать делать вот такие вот статистические таблицы для отчетов. тоже абсолютно нормальная практика. но сырые данные по продажам в любом случае придется оставить.

Алексей- Автор вопроса

спасибо, сырые данные останутся в любом случае. даже если попросят выкинуть - буду отстаивать до последнего)

иногда эти отчетные таблицы берут и выносят вообще в другую базу данных, на другой машине. чтобы наней отчеты гонять

Алексей- Автор вопроса

да, ребята уже предлагали микросервис состряпать с отдельной бд. и по моему это хороший вариант. покрайней мере с той точки откуда я смотрю

это не стоит называть прям уж микросервисом. да и необязательно это. мороки много, а на таких мелких данных банально может не понадобиться

Алексей- Автор вопроса

ну "микро" понятие растяжимое. может вообще лямбда от авс спрявится с задачами

понятие микросервиса вполне определенное. Фаулером там.. и другими пацанами.

Алексей- Автор вопроса

я про размер)

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта