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

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

Горизонтальное и вертикальное масштабирование SQL БД

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

  • Увеличение мощности сервера (CPU, RAM, SSD)
  • Просто в реализации, но имеет физические ограничения
  • Пример для PostgreSQL:
sql
ALTER SYSTEM SET shared_buffers = '4GB';
ALTER SYSTEM SET work_mem = '32MB';

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

  1. Шардинг - разделение данных по разным серверам

    • По диапазону значений (range)
    • По хэшу (hash)
    • По списку (list)
  2. Репликация

    • Master-Slave для чтения
    • Multi-Master для записи
  3. Промежуточные решения

    • Через прокси (PgBouncer, ProxySQL)
    • Использование ORM с поддержкой шардинга

Пример шардинга в Django:

python
DATABASES = {
    'default': {},  # Роутер
    'users': {...}, # Шард 1
    'orders': {...} # Шард 2
}

Лучший подход - комбинация методов в зависимости от нагрузки (чтение/запись).

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

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

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

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