Как увеличить скорость работы проекта путём оптимизации архитектуры БД Лобан Алексей
Что вас ждет? Агрегация Денормализация Репликация Шардинг Партиционирование 2
3
Структура базы данных 4
5
6
7
8
Получим список новостей 9
10
Получим список новостей 11
Получим список новостей 12
Получим список новостей 13
Получим список новостей 14
Получим список новостей 15
Получим список новостей 16
Репликация 17
18
Что тут можно улучшить? 19
Агрегация 20
Агрегация Процесс сбора, обработки и представления информации в окончательном виде. 21
Где это можно применить? 22
23
24
Как поддерживать актуальность? 25
Как поддерживать актуальность? С помощью trigger
Как поддерживать актуальность? С помощью trigger 2. C помощью cron
Как поддерживать актуальность? 1. С помощью trigger 2. C помощью cron 3. Использовать очередь 28
Продолжаем оптимизацию 29
Продолжаем оптимизацию 30
Денормализация 31
Денормализация Намеренное приведение структуры БД в состояние, не соответствующее критериям нормализации. 32
Как это можно применить? 33
34
35
Продолжаем оптимизацию 36
Добавим новую сущность feed 37
Что нам это даст? 39
40
41
42
43
44
45
Какие могут возникнуть проблемы? 46
Шардинг Это прием, который позволяет распределять данные между разными физическими серверами. 47
48
49
Плюсы Минусы -Легко реализовать и поддерживать в коде -Неравномерное распределение данных 50
Партицирование Это разбиение больших таблиц на логические части по выбранным критериям. 51
52
Плюсы Минусы -Нет единой точки отказа -Гибкое управление ресурсами -Практически неограниченное горизонтальное масштабирование -Достаточно сложная реализация -Сложно выполнить сортировку или фильтрацию данных 53
Время вопросов!