Какие знаешь способы масштабирования БД
Python
Senior
Без компании
Какие знаешь способы масштабирования БД
Ответы
Вертикальное масштабирование (scaling up) – увеличение мощности сервера (CPU, RAM, SSD). Подходит для небольших нагрузок, но имеет физические ограничения.
Горизонтальное масштабирование (scaling out) – распределение данных между несколькими серверами:
- **Шардирование** – разделение данных по ключам (например, по user_id).
- **Репликация** – копирование данных на несколько серверов (master-slave для чтения, master-master для записи).
Пример шардирования в Python (условный):
```
def get_shard(user_id: int, shards: int) -> int:
return user_id % shards
```
**NoSQL** (MongoDB, Cassandra) часто лучше масштабируются горизонтально, чем реляционные БД.
Кэширование (Redis, Memcached) снижает нагрузку на БД для частых запросов.