Некоторые преимущества документоориентированных СУБД:
- Отсутствие чёткой схемы данных. 2 Разработчики могут менять её «на лету», в любой момент редактируя или удаляя уже имеющиеся коллекции и добавляя новые без необходимости переносить данные в обновлённую схему. 2 Это удобно при создании динамически меняющегося продукта с постоянно увеличивающимся набором функций и возможностей. 2
- Возможность хранения данных разных типов. 3 Это полезно при работе с Big Data, когда информация собирается из большого количества независимых источников и плохо увязывается в единую структуру. 3
- Скорость. 3 Специфическая структура и поддержка индексации хорошо сказываются на производительности системы. 3
- Удобство масштабирования. 3 СУБД можно без особых сложностей масштабировать и менять в зависимости от потребностей бизнеса. 3
- Функция работы на нескольких серверах. 3 СУБД использует механизмы репликации и сегментирования, позволяющие формировать функциональные копии БД, которым можно в любой момент делегировать управление, и равномерно распределять между ними нагрузку. 3
Некоторые недостатки документоориентированных СУБД:
- Ограничения по проверке на согласованность. 1 Например, можно искать книги по несуществующему автору. 1 При поиске по коллекциям книг можно находить документы, не связанные с коллекцией авторов. 1
- Проблемы с атомарностью. 1 Изменение, затрагивающее две коллекции, выполняется через два отдельных запроса (по одному на коллекцию). 1 Это нарушает требования к атомарности. 1
- Нет хранимых процедур и функций. 3 В реляционных СУБД можно написать набор команд, сохранить их и после этого вызывать при необходимости. 3 Здесь такой возможности нет, так что добиться полной автоматизации работы не получится. 3
- Проблемы при работе с жёстко связанными данными. 3 Документоориентированность позволяет хранить документы с сильно различающейся структурой, что удобно при работе со слабо связанными данными. 3 Однако если между ними имеются жёсткие связи, могут возникать проблемы. 3