Ответ вслух Middle Выбор хранилища спрашивают часто обновлено

SQL или NoSQL

Вопрос

Как вы решаете, брать реляционную БД или NoSQL?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

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

Что должно прозвучать в ответе

  • Смотрю на паттерны запросов, а не на моду

  • Связи, транзакции, сложные запросы: реляционная

  • Огромная запись и доступ по ключу: wide-column или key-value

  • Гибкая структура, документ читается целиком: документная

  • Учитываю объём, консистентность и опыт команды

Что могут спросить следом

  • Почему NoSQL не означает «масштабируется само»?
  • Можно ли в PostgreSQL хранить JSON?

Разбор

Начинаю с запросов: какие сущности, как связаны, какие операции и с какой частотой. Если есть связи, транзакции и разнообразные запросы, беру PostgreSQL: он закрывает большинство задач и держит большие нагрузки, а через jsonb даже частично гибкую схему. NoSQL беру под конкретную причину: Cassandra, если запись идёт сотнями тысяч в секунду и доступ по ключу партиции, Redis для кеша и счётчиков, документную БД, если сущность самодостаточная и разнородная. NoSQL не масштабируется сам: в Cassandra неудачный ключ партиции даёт горячие узлы так же, как в шардированном SQL. И учитываю опыт команды: незнакомая БД в проде это риск.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме