У меня еще нет рук, грязных ни с CouchDB, ни с MongoDB, но я хотел бы сделать так скоро... Я также читал немного об обеих системах, и это смотрит на меня как, они покрывают те же случаи... Или я пропускаю ключевой отличительный признак?
Я хотел бы использовать основанное на документе устройство хранения данных вместо традиционного RDBMS в моем следующем проекте. Мне также нужно хранилище данных к
Оба одинаково хорошо подходят для этих требований?
Спасибо!
Я на самом деле довольно широко использовал оба, оба для очень разных проектов.
Я бы сказал, что они одинаково хорошо подходят под требования, которые вы перечислили, однако между ними есть довольно много различий. Самое большое в IMO - это их возможность задавать вопросы. В CouchDB нет "запросов" в смысле СУБД (select * из ...), вместо этого используются "views", которые больше похожи на хранимые процедуры (в сущности, статические запросы определили в БД (1)). В MongoDB гораздо больше "обычных" запросов .
По сути это сводится к требованиям Вашего приложения. Если вы дадите больше информации, я, возможно, смогу пролить свет на то, что может иметь значение в этой ситуации.
(1): в CouchDB могут выполняться временные, нестатические запросы, но они не рекомендуются для использования в производстве
.Mongo использует более "традиционные" запросы. Вы включаете индексирование на a per-Ключевая основа и синтаксис SQLish запросов.
Вид CouchDB может делать гораздо более глубокую индексацию и отношения, но требует от вас немного больше работы и понимания того, как работает сортировка по ключам для выполнения запросов.
Есть большая разница и в системах репликации. Репликация Mongo во многом похожа на большинство решений СУБД с мастерами и ведомыми и все такое. Репликация CouchDB больше похожа на peer to peer, нет master/slave, каждая CouchDB является узлом
.] Репликация CouchDB предназначена для синхронизации географически разнесенных сайтов. Он изящно справляется с сетевыми и другими ошибками, перезапуская репликацию с того места, где она была остановлена. Узлы, участвующие в репликации, могут быть даже намеренно отключены от сети. [
]Прежде чем использовать MongoDB, я бы порекомендовал вам взглянуть на следующее: http://groups.google.com/group/mongodb-user/browse_thread/thread/460dbd49a5b6b267. У MongoDB есть небольшой шанс испортить данные из-за отсутствия fsync'ов при каждой записи.