- Данные представлены в формате JSON
Это означает, что документы достаточно велики (BigData, пропускная способность сети, скорость), а наличие описательных имен ключей на самом деле вредно,поскольку они складываются в размер документа.
плюс еще :
- Он не поддерживает транзакции
Это означает, что обеспечение уникальности одного поля во всех документах небезопасно, например, обеспечение уникальности имени пользователя.Другое следствие неспособности CouchDB поддерживать типичное понятие транзакции заключается в том, что такие вещи, как увеличение / уменьшение значения и его сохранение обратно, также опасны.Не так много случаев, когда мы хотели бы просто увеличивать / уменьшать некоторые значения, когда мы не могли бы просто хранить отдельные документы отдельно и объединять их с представлением.
Если данные имеют большой смысл быть в 3-й нормальной форме, и мы попытаемся следовать этой форме в CouchDB, мы столкнемся с большим количеством проблем.Возможным способом решения этой проблемы является сопоставление представлений, но мы можем постоянно бороться с системой.Если данные можно переформатировать, чтобы они были намного более денормализованы, то CouchDB будет работать нормально.
Проблема заключается в том, чтовременные просмотры в CouchDB для больших наборов данных действительно медленные.Использование CouchDB и постоянных представлений может работать довольно хорошо.Однако в большинстве случаев ориентированная на столбцы база данных является гораздо лучшим инструментом для работы с хранилищами данных.
Но CouchDB качается!
Но неПозвольте вас обескуражить: базы данных NoSQL, написанные на языке Erlang (CouchDB, Riak), являются лучшими, поскольку Erlang предназначен для распределенных систем.Веселитесь с диваном!