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

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

Вот основные способы масштабирования реляционных СУБД:

Вертикальное масштабирование (Scaling Up)

  • Увеличение ресурсов сервера (CPU, RAM, диски)
  • Просто в реализации, но имеет физические ограничения
sql
-- Пример: миграция на сервер с большими ресурсами
ALTER DATABASE mydb SET max_connections = 500;

Горизонтальное масштабирование (Scaling Out)

  1. Шардинг - разделение данных по разным серверам по ключу (user_id, region и т.д.)
  2. Репликация
    • Master-Slave: запись только в мастер, чтение из реплик
    • Master-Master: запись в любой узел (редко используется из-за сложностей)

Оптимизация запросов и индексов

  • Создание правильных индексов
  • Денормализация (в разумных пределах)
  • Кэширование (Redis, Memcached)

Пример шардинга на Python:

python
def get_shard(user_id):
    return user_id % 4  # 4 шарда

Выбор метода зависит от нагрузки: для read-heavy подойдет репликация, для write-heavy - шардинг.

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

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

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

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