SQL или NoSQL
Вопрос
Когда ты выберешь NoSQL вместо PostgreSQL? Приведи примеры задач.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Выбор от модели доступа, объёма, консистентности и опыта команды, а не от моды
PostgreSQL по умолчанию: транзакции, JOIN, ограничения, jsonb
Redis: кеш, сессии, счётчики, rate limiting
Cassandra: огромный поток записи с запросами по ключу партиции
ClickHouse: аналитика, Elasticsearch: полнотекстовый поиск
Цена NoSQL: денормализация, слабее консистентность, сложно менять запросы
Что могут спросить следом
- Почему «MongoDB быстрее PostgreSQL» некорректное утверждение?
- Как синхронизировать данные между PostgreSQL и Elasticsearch?
Разбор
Начинаю с вопросов: какие данные и связи, какие запросы, соотношение чтения и записи, объёмы, какая нужна консистентность и что команда умеет эксплуатировать. По умолчанию беру PostgreSQL: транзакции, JOIN, ограничения, а jsonb закрывает большинство историй про гибкую схему. NoSQL беру под конкретную задачу. Redis рядом с основной базой для кеша, сессий, счётчиков и ограничения частоты запросов. Cassandra или ScyllaDB, если поток записи огромный, а читаем по известному ключу, например лента событий пользователя. ClickHouse для аналитики по миллиардам событий. Elasticsearch для полнотекстового поиска с морфологией. Платить за это придётся: нет JOIN и данные дублируются, консистентность чаще итоговая, а новый вид запроса может потребовать новую таблицу. Поэтому «MongoDB быстрее» это не аргумент: быстрее на чём, при какой модели данных.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.