Недостатки CouchDB - PullRequest
       9

Недостатки CouchDB

16 голосов
/ 22 октября 2011

Я совсем недавно влюбился в CouchDB . Я очень взволнован его огромными преимуществами и его красотой. Теперь я хочу убедиться, что я не пропустил ни одного недостатка, мешающего показу.

Что приходит на ум? Приложенный список пунктов, которые я собрал. Есть что добавить?

  • В блогах, опубликованных в конце 2010 года, утверждается, что они "недостаточно взрослые" (чего бы это ни стоило).
  • Медленнее, чем СУБД в памяти.
  • Обновления на месте требуют серверной логики (обработчики обновлений) .
  • Торгует диском в зависимости от скорости: базы данных могут стать огромными по сравнению с другими СУБД (хотя и существует функция уплотнения).
  • «Только» возможная согласованность.
  • Временные просмотры больших наборов данных очень медленные.
  • Репликация больших баз данных может произойти сбой .
  • Карта / сокращение парадигмы требует переосмысления (только для полноты).

Единственное, что беспокоит me , это # ​​3 (обновления на месте), потому что это довольно неудобно.

Ответы [ 6 ]

12 голосов
/ 22 октября 2011
  • Данные представлены в формате JSON

Это означает, что документы достаточно велики (BigData, пропускная способность сети, скорость), а наличие описательных имен ключей на самом деле вредно,поскольку они складываются в размер документа.

плюс еще :

  • Он не поддерживает транзакции

Это означает, что обеспечение уникальности одного поля во всех документах небезопасно, например, обеспечение уникальности имени пользователя.Другое следствие неспособности CouchDB поддерживать типичное понятие транзакции заключается в том, что такие вещи, как увеличение / уменьшение значения и его сохранение обратно, также опасны.Не так много случаев, когда мы хотели бы просто увеличивать / уменьшать некоторые значения, когда мы не могли бы просто хранить отдельные документы отдельно и объединять их с представлением.

  • Реляционные данные

Если данные имеют большой смысл быть в 3-й нормальной форме, и мы попытаемся следовать этой форме в CouchDB, мы столкнемся с большим количеством проблем.Возможным способом решения этой проблемы является сопоставление представлений, но мы можем постоянно бороться с системой.Если данные можно переформатировать, чтобы они были намного более денормализованы, то CouchDB будет работать нормально.

  • Хранилище данных

Проблема заключается в том, чтовременные просмотры в CouchDB для больших наборов данных действительно медленные.Использование CouchDB и постоянных представлений может работать довольно хорошо.Однако в большинстве случаев ориентированная на столбцы база данных является гораздо лучшим инструментом для работы с хранилищами данных.

Но CouchDB качается!

Но неПозвольте вас обескуражить: базы данных NoSQL, написанные на языке Erlang (CouchDB, Riak), являются лучшими, поскольку Erlang предназначен для распределенных систем.Веселитесь с диваном!

5 голосов
/ 22 октября 2011

еще 2 вещи, которые заставляют меня плакать при использовании CouchDB (хотя это круто):

  • Он не предназначен для часто обновляемых данных
  • Нет встроенного полнотекстового поиска
3 голосов
/ 13 декабря 2011
  • Отсутствие ACL для читателей (однако, для писателей существует)

Как старый профессионал Lotus Domino, я искал CouchDB в качестве альтернативы для нового проекта, который я начинаюи обнаружил, что ограничения на читателей были очень слабыми в Couch vs. Domino.В моем приложении безопасность является важным фактором, и Couch потребуется промежуточный уровень для обеспечения безопасности читателя.

Если у вас есть база данных, в которой все пользователи могут видеть все документы, то Couch выглядит интересноплатформа.

Если необходимо ограничение чтения, вам нужно обратиться к промежуточному программному решению или рассмотреть другую альтернативу.

Примечание для разработчиков CouchDB: улучшите параметры безопасности платформы.Я понимаю, что при использовании они уменьшат производительность, но учтите это и сделайте опцию доступной.

Теперь вернемся к определению, какую базу данных использовать ...

1 голос
/ 22 октября 2011
  • В настоящее время нет поддержки специальных запросов (может измениться с появлением UnQL)
  • отсутствие поддержки двоичного протокола для более быстрой связи
0 голосов
/ 20 декабря 2018

Отсутствие поддержки архивации данных - Официальная поддержка архивации данных не предоставляется при распространении с открытым исходным кодом couch db.

0 голосов
/ 22 октября 2011

Это не имеет ничего общего с самой CouchDB, но, будучи относительным новичком на сцене, это означает, что большинство системных администраторов все еще не знакомы с ним и не допустят его где-либо рядом со "своими" центрами обработки данных. Если вы находитесь в ситуации, когда вы развертываете в среде, которую вы не контролируете сами, это может стать настоящей битвой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...