База “гальмує” не від обсягу, а від невдалих патернів
На проді проблеми майже завжди типові: відсутні індекси, важкі JOIN, неправильні транзакції, повільні фільтри. Рішення — дисципліна моделювання і профайлінг.
1) Модель даних
- Нормалізація там, де важлива консистентність.
- Денормалізація/матеріалізовані представлення — коли важливе читання.
2) Індекси і запити
- EXPLAIN як стандартний інструмент.
- Композитні індекси під реальні фільтри.
3) Блокування
Довгі транзакції, “SELECT FOR UPDATE” без потреби, масові апдейти — часті джерела lock contention.
4) Міграції
Backward‑compatible міграції, розділення deploy/migrate, контроль часу виконання і план rollback.
Підсумок
Сильний DB‑стек — це правильна модель, індекси під запити і безпечні міграції. Так p95 і стабільність стають керованими.