@dimonchu

Большая статистика из таблиц. Как правильно считать данные в БД, как вы это делаете?

Как правильно проектировать статистику чего-то?
Считать БД можно/нужно? Или лучше вся статистика должна быть уже обработана, и просто лежать в БД?
Имею ввиду всякие COUNT, AVG, SUM и так дальше, на стороне БД. Либо делать пред-обработку сразу по поступлению данных?
Адекватно ли будет это все считать силами самой БД в реальном времени, или это глупый подход?
Пускай мы должны работать с 3 таблицами(Joins + subquery), которые выводят результат в 100 строк, и в каждой строке по 10 колонок. Все 10 колонок это данные операторов агрегации.
Сами таблицы в себе вмещают до 100к строк данных каждая.
  • Вопрос задан
  • 357 просмотров
Решения вопроса 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Всё зависит от конкретного случая, универсального ответа на ваш вопрос нет. Как человек, более близкий к админству, могу сказать, что на объёмах в сотни тысяч строк, то есть вполне помещающихся в оперативную память, вполне можно не заморачиваться преждевременной оптимизацией, главное, чтобы в таблицах были нужные индексы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Create Event
Или, периодически, через cron и микросервис: делаем независимые промежуточные расчёты - асинхронно, затем - итоговый из промежуточных.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
samodum
@samodum
Какой вопрос - такой и ответ
Всё зависит от конкретной задачи.
Одни статистики считаются сразу, если они выполняются редко и/или быстро.
Если статистика тяжело считается, но её актуальность суточная, то выбирается время наименьшей активности юзеров. У нас это 4 часа утра в текущем регионе (+ в выходные ещё меньше). В это время запускается и считается тяжёлая статистика. Результаты отправляются в отдельную таблицу, откуда эти данные потом быстро забираются. Либо сразу подготавливается html-страница с отчётом.
Примерно то же самое, если актуальность в несколько часов или минут.

100к строк в таблице - это вообще ни о чём. Крохотулечная табличка. Тут всё зависит от самого запроса, как он написан.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы