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

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

Для масштабирования реляционных БД применяют несколько подходов:

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

  • Увеличение ресурсов сервера (CPU, RAM, диски)
  • Просто в реализации, но имеет физические ограничения

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

  1. Шардинг (Partitioning)
    • Разделение данных по разным серверам (например, по user_id)
    python
    # Пример определения шарда для пользователя
    def get_shard(user_id):
        return user_id % 3  # 3 сервера
  1. Репликация

    • Master-Slave: запись в master, чтение из реплик
    • Multi-Master: несколько мастеров для записи
  2. Кэширование

    • Redis/Memcached для частых запросов
    python
    from django.core.cache import cache
    data = cache.get('popular_data')
    if not data:
        data = db.query(...)
        cache.set('popular_data', data, 60)
  3. Оптимизация запросов

    • Индексы, денормализация, анализ EXPLAIN
  4. Микросервисы

    • Разделение БД по бизнес-доменам

Выбор метода зависит от нагрузки, бюджета и требований к согласованности данных.

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

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

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

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