Встречается на собеседованиях • сегодня

Как можно масштабировать БД

Для масштабирования БД в Python обычно используют два подхода: вертикальное и горизонтальное масштабирование.

Вертикальное (Scale Up) – увеличение мощности сервера (CPU, RAM, диски). Просто, но имеет физические ограничения.

Горизонтальное (Scale Out) – распределение нагрузки на несколько серверов:

  • Шардинг – разделение данных по разным серверам (например, по диапазонам ID).
  • Репликация – копирование данных на несколько серверов (master-slave для чтения/записи).

Пример с SQLAlchemy для шардинга:

python
from sqlalchemy import create_engine

# Два разных сервера БД
shard1 = create_engine('postgresql://user:pass@shard1/db')
shard2 = create_engine('postgresql://user:pass@shard2/db')

def get_shard(user_id):
    return shard1 if user_id % 2 == 0 else shard2

Также можно использовать готовые решения:

  • Redis Cluster – для кэширования.
  • PostgreSQL с Citus – для горизонтального масштабирования.
  • MongoDB – автоматический шардинг.

Оптимальный выбор зависит от нагрузки (read/write) и структуры данных.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы