Аналитика Telegram-канала
Подписчики
4 261
Охват за 24 ч
836
ER за 24 ч
19,62%
Публикаций
72
Динамика подписчиков
7 дней
30 дней
6 месяцев
Больше
29 окт1 ноя4 ноя
Показаны последние 7 дней
Больше истории →
Охваты публикаций
05.1007.1016.1027.1029.1002.11
331
Средний охват
439
Лучший результат
Показаны 6 публикаций — последние в канале
Больше статистики →
Упоминания
2
Упоминаний
0
Из них репостов
2
Каналов
7
Упоминаний
2
Из них репостов
4
Каналов
Последние посты
3 из 72 2 из 72Продолжим тему денормализации
Мы выяснили, что денормализация - это добавление избыточности ради скорости чтения.
Как это чаще всего выглядитит в реальой жизни? Простой пример- счетчик лайков (или просмотров) в соцсетях.
Как сделано в нормализованной БД (идеально):
У нас есть таблица Posts (посты) и таблица Likes (лайки). Чтобы узнать, сколько лайков у поста, мы делаем запрос:
SELECT COUNT(*) FROM Likes WHERE post_id = 123;
Плюс: Всегда актуальные данные
Минус: На огромных таблицах COUNT(*) может выполняться долго, особенно если делать это для ленты из 20 постов.
Как это часто делают на практике (денормализация):
В таблицу Posts добавляют колонку likes_count.
Когда юзер ставит лайк, мы делаем два действия (в одной транзакции):
1. INSERT INTO Likes ...
2. UPDATE Posts SET likes_count = likes_count + 1 WHERE id = 123;
Плюс: Выборка постов для ленты — молниеносная. Просто SELECT * FROM Posts.
Минус: Логика записи усложняется. Если произойдет сбой (записали лайк, но не обновили счетчик), данные разойдутся
ещё
294
1
1 2 ноя, 20:17
Денормализация - это осознанный компромисс, намеренное внесение избыточности в уже нормализованную схему БД. Мы жертвуем идеальной структурой данных ради скорости. Это не ошибка проектирования, а инженерное решение, применяемое там, где чтение(!) важнее записи.
Поэтому верный вариант D - денормализация может (но не обязана всегда) добавлять избыточные данные ради ускорения доступа.
Цена денормализации:
1. Риск несогласованности данных (обновили в одном месте — забыли в другом)
2. Усложнение логики записи/обновления
3. Увеличение объёма хранимых данных
Примеры из ваших реальных проектов или учебных задач в комментариях приветствуются! Делитесь примерами, когда этот приём действительно помог ускорить работу базы данных или, наоборот, создал лишние проблемы.
ещё
283
2
6 29 окт, 20:08
Немного теории)) Выберите верное утверждение о (де-)нормализации.
A. Процесс нормализации предполагает добавление избыточных (дублирующих) данных в БД ради увеличения скорости доступа
B. Процесс денормализации никогда не предполагает добавление избыточных (дублирующих) данных в БД ради увеличения скорости доступа
C. Процесс изучения денормализации предполагает звонок другу или помощь зала
D. Процесс денормализации может предполагать добавление избыточных (дублирующих) данных в БД ради увеличения скорости доступа
ещё
277
0
2 1 27 окт, 18:52
Продолжить анализ этого канала
- История роста подписчиков
- Просмотры и охваты публикаций
- Кто упоминает канал и кого упоминает он
- Похожие каналы и подбор для рекламы
Открыть аналитику
Демо до 14 дней