Вопрос проверяет понимание ограничений масштабирования и сложности распределённых хранилищ данных.
Горизонтальное масштабирование БД усложняет консистентность данных. Возникают проблемы с транзакциями и JOIN-запросами. Шардинг усложняет логику приложения. Failover и репликация требуют сложной координации. Масштабирование БД всегда дороже, чем сервисов.
Горизонтальное масштабирование баз данных — одна из самых сложных задач backend-архитектуры.
Горизонтальное масштабирование БД — распределение данных и нагрузки между несколькими узлами.
Перед внедрением важно понимать последствия:
Консистентность
распределённые транзакции
сложность ACID
компромиссы по CAP
Шардинг
выбор shard key
неравномерное распределение данных
сложность изменений схемы
Запросы
невозможность JOIN между шардами
агрегации становятся дорогими
Failover
split brain
задержки репликации
сложная оркестрация
Операционная сложность
бэкапы
мониторинг
миграции данных
масштабировать чтение проще, чем запись
сначала оптимизируют запросы и индексы
шардинг — крайняя мера
Горизонтальное масштабирование БД повышает сложность системы и должно применяться только при реальной необходимости.