Встречается на собеседованиях • сегодня

Какие недостатки есть у NoSQL решений

  1. Отсутствие ACID-транзакций (в большинстве NoSQL). Например, MongoDB поддерживает транзакции только в последних версиях, но они менее эффективны, чем в реляционных СУБД.

  2. Сложность JOIN-операций. В NoSQL данные часто денормализованы, а связи между сущностями реализуются через вложенные документы или ручные запросы:

python
# MongoDB: вместо JOIN — несколько запросов
user = db.users.find_one({"_id": user_id})
orders = db.orders.find({"user_id": user["_id"]})
  1. Ограниченная аналитика. NoSQL плохо подходит для сложных агрегаций (кроме специализированных решений, как Cassandra + Spark).

  2. Проблемы консистентности. В распределенных системах возможны конфликты (CAP-теорема), например, в DynamoDB или Redis при репликации.

  3. Нестандартные языки запросов. Каждая NoSQL-СУБД имеет свой синтаксис (CQL, MQL), что усложняет миграцию.

  4. Сложность масштабирования для некоторых типов. Например, графовые БД (Neo4j) плохо масштабируются горизонтально.

Пример: в MongoDB дублирование данных (для избежания JOIN) приводит к аномалиям при обновлении.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы