Ответ
Горизонтальное масштабирование (Sharding)
Разделение данных на части (шарды) и распределение по разным серверам. Например, пользователей можно шардировать по ID или региону.
-- Пример шардинга по диапазону ID
-- Сервер 1: ID 1-1000
-- Сервер 2: ID 1001-2000
Вертикальное масштабирование
Увеличение мощности сервера (CPU, RAM, SSD). Подходит для нагрузок, которые не распределяются легко.
Репликация (Master-Slave)
Чтение с реплик, запись в мастер. Уменьшает нагрузку на мастер-сервер.
-- Настройка репликации в MySQL
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='repl_user',
MASTER_PASSWORD='password';
Кэширование (Redis, Memcached)
Хранение часто запрашиваемых данных в памяти для ускорения доступа.
Партиционирование таблиц
Разделение одной таблицы на физические части (например, по датам).
-- Партиционирование по месяцам
CREATE TABLE logs (
id INT,
log_date DATE
) PARTITION BY RANGE (MONTH(log_date));