Когда нужна денормализация в БД
Python
Middle
Без компании
Когда нужна денормализация в БД
Ответы
Денормализация применяется для повышения производительности в ущерб нормальной форме БД, когда:
- **Частые JOIN-запросы замедляют работу** – дублирование данных уменьшает количество соединений.
- **Агрегация данных** – предрасчёт сумм, средних и других метрик ускоряет отчеты.
- **Чтение преобладает над записью** – денормализация выгодна, если данные редко обновляются, но часто читаются.
**Пример:**
```
-- Нормализованная таблица (users + orders)
SELECT u.name, COUNT(o.id)
FROM users u
JOIN orders o ON u.id = o.user_id
GROUP BY u.name;
-- Денормализованный вариант (предрасчёт)
ALTER TABLE users ADD COLUMN order_count INT;
UPDATE users SET order_count = (SELECT COUNT(*) FROM orders WHERE user_id = users.id);
```
**Минусы:** сложнее поддерживать целостность и обновлять данные.