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

Python Senior Без компании
Как масштабировать SQL БД
Ответы
# Горизонтальное и вертикальное масштабирование SQL БД **Вертикальное масштабирование (Scale Up)** - Увеличение мощности сервера (CPU, RAM, SSD) - Просто в реализации, но имеет физические ограничения - Пример для PostgreSQL: ``` ALTER SYSTEM SET shared_buffers = '4GB'; ALTER SYSTEM SET work_mem = '32MB'; ``` **Горизонтальное масштабирование (Scale Out)** - **Шардинг** - разделение данных по разным серверам - По диапазону значений (range) - По хэшу (hash) - По списку (list) - **Репликация** - Master-Slave для чтения - Multi-Master для записи - **Промежуточные решения** - Через прокси (PgBouncer, ProxySQL) - Использование ORM с поддержкой шардинга Пример шардинга в Django: ``` DATABASES = { 'default': {}, # Роутер 'users': {...}, # Шард 1 'orders': {...} # Шард 2 } ``` Лучший подход - комбинация методов в зависимости от нагрузки (чтение/запись).