Денормализация — это процесс намеренного введения контролируемой избыточности в базу данных путём объединения нормализованных таблиц в более крупные. В отличие от нормализации, которая устраняет избыточность, денормализация жертвует эффективностью хранения ради производительности запросов.
Денормализация уместна в следующих сценариях:
Рассмотри нормализованную схему, где orders, customers и products — это отдельные таблицы. Каждый запрос требует нескольких операций JOIN:
SELECT c.name, p.name, o.quantity
FROM orders o
JOIN customers c ON o.customer_id = c.id
JOIN products p ON o.product_id = p.id;
После денормализации данные о клиенте и продукте хранятся непосредственно в таблице orders, что полностью исключает соединения и ускоряет чтение.
Денормализацию стоит применять только после профилирования и выявления реальных узких мест производительности. Это не выбор по умолчанию — это осознанная стратегия оптимизации, к которой прибегают, когда выигрыш в производительности явно перевешивает сложность сопровождения, которую вносит избыточность.
Денормализация устраняет избыточность данных для улучшения эффективности хранения, что делает её предпочтительным подходом при проектировании высоконагруженных систем баз данных.
Новый — ещё не проверен сообществом
Вы