🔹 Почему отчёты не считают в базе приложения 🔹 Почему не считать отчёт прямо в базе с заказами? 🔸 Мы уже разбирали путь данных из базы приложения в хранилище, но не объяснили, почему нельзя считать на месте. База приложения (OLTP, обработка транзакций) рассчитана на множество коротких операций: найти заказ, обновить статус, добавить платёж.

🔸 Аналитический запрос (OLAP, аналитическая обработка) читает миллионы строк, например сумму по orders за год. В базе приложения он замедляет работу пользователей, которые в этот момент оформляют заказы.

🔸 Аналитические хранилища обычно хранят данные по столбцам: запрос читает только нужные, а не строки целиком, и агрегаты считаются быстро.

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

-- OLTP: статус одного заказа SELECT status FROM orders WHERE id = 42;

-- OLAP: сумма по месяцам за год SELECT date_trunc('month', created_at) AS m, SUM(amount) FROM orders WHERE created_at >= '2024-01-01' AND created_at < '2025-01-01' GROUP BY 1;

📚 База приложения создана для быстрых точечных правок, хранилище для больших расчётов, одна база редко хорошо делает оба.

#CODERIKK #DE #Junior

➡️ Мы в Telegram - Сетке - ВК Буду рад вашей реакции здесь⬇️


В этом посте были ссылки, но мы их удалили по правилам Сетки

🔹 Почему отчёты не считают в базе приложения
🔹 Почему не считать отчёт прямо в базе с заказами?
🔸 Мы уже разбирали путь данных из базы приложения в хранилище, но не объяснили, почему нельзя считать на... | Сетка — социальная сеть от hh.ru