Получить доступ

В каких случаях переход на NoSQL, скорее всего, не оправдан?

MiddleNoSQL
Ещё спрашивают так:
  • Когда не стоит переходить на NoSQL?
Коротко

Не оправдан при связанных данных, нужде в транзакциях между сущностями, произвольных запросах и отчётах, и когда масштаб одной реляционной базы ещё не исчерпан.

  • Реляционная база держит очень большие нагрузки при нормальных индексах и репликах
  • Переход переносит целостность и JOIN в код приложения
  • «Гибкая схема» — не аргумент: схема всё равно есть, только неявная

А ещё Сначала оптимизация, кэш, реплики, партиционирование

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Главная плата за отказ от реляционной модели — перенос работы в приложение: соединения делаются кодом, целостность поддерживается вручную, а схема фиксируется под конкретные запросы, из-за чего новый сценарий требует новой таблицы или новой проекции. Это оправдано, когда паттерны доступа известны и стабильны, а объём или нагрузка на запись выходят за пределы одной машины. В остальных случаях современный PostgreSQL с репликами, партиционированием и JSONB закрывает задачу, оставляя транзакции и произвольные запросы. Разумная стратегия — не выбирать одно на всё, а держать реляционную базу источником истины и добавлять специализированные хранилища под конкретные сценарии.

Что хотят услышать

  • Признаки, что NoSQL не нужен.
  • Цена перехода.
  • Что попробовать раньше.

Частые ошибки

  • Выбирать NoSQL из-за «гибкости схемы» — она означает, что схему теперь поддерживает приложение.
  • Оценивать масштаб по ожиданиям, а не по измеренной нагрузке.

Проверьте себя

Несколько верных вариантов. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Данные сильно связаны, и запросы требуют произвольных соединений между сущностями
  • ✓Нужны транзакции с несколькими сущностями и строгие ограничения целостности
  • ✓Объём данных умеренный, а нагрузка укладывается в одну реляционную СУБД с репликами
  • ✗Требуется линейное горизонтальное масштабирование записи при простом доступе по ключу

Что спросят дальше

  • Что означает моделирование от access patterns?
  • Как выглядит связка реляционного источника истины со специализированными хранилищами?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем