Какие знаешь способы масштабирования реляционных баз данных

Python Middle Без компании
Какие знаешь способы масштабирования реляционных баз данных
Ответы
Вот основные способы масштабирования реляционных СУБД: **Вертикальное масштабирование (Scaling Up)** - Увеличение ресурсов сервера (CPU, RAM, диски) - Просто в реализации, но имеет физические ограничения ``` -- Пример: миграция на сервер с большими ресурсами ALTER DATABASE mydb SET max_connections = 500; ``` **Горизонтальное масштабирование (Scaling Out)** - **Шардинг** - разделение данных по разным серверам по ключу (user_id, region и т.д.) - **Репликация** - Master-Slave: запись только в мастер, чтение из реплик - Master-Master: запись в любой узел (редко используется из-за сложностей) **Оптимизация запросов и индексов** - Создание правильных индексов - Денормализация (в разумных пределах) - Кэширование (Redis, Memcached) **Пример шардинга на Python:** ``` def get_shard(user_id): return user_id % 4 # 4 шарда ``` Выбор метода зависит от нагрузки: для read-heavy подойдет репликация, для write-heavy - шардинг.