Являются ли MongoDB и CouchDB идеальными заменителями?
У меня еще нет грязных рук, но CouchDB и MongoDB, но я хотел бы сделать это скоро... Я также немного ознакомился с обоими системами, и мне кажется, что они охватывают одни и те же случаи... Или я не вижу ключевого отличия особенность?
Я хотел бы использовать хранилище на основе документов вместо традиционной RDBMS в моем следующем проекте. Мне также нужно хранилище данных
- обрабатывать большие двоичные объекты (изображения и видео)
- автоматически реплицируется на физически отдельные узлы.
- что лишний раз лишний лишний RDBMS
Оба одинаково хорошо подходят для этих требований?
Спасибо!
Ответы
Ответ 1
Я действительно использовал оба довольно широко, как для очень разных проектов.
Я бы сказал, что они одинаково хорошо подходят для требований, которые вы перечисляете, но между ними довольно много различий. ИМО является самой большой их способностью запросов. CouchDB не имеет "запросов" в смысле RDBMS (выберите * из...), но вместо этого использует " views ', которые больше как хранимые процедуры (по существу, статические запросы, определенные в базе данных (1)). У MongoDB гораздо больше более" обычных "запросов.
По сути, это сводится к вашим требованиям к приложениям. Если вы дадите больше информации, я, возможно, смогу пролить немного света на то, что может иметь значение в этой ситуации.
(1): вы можете временно использовать нестатические запросы в CouchDB, но они не рекомендуются для использования
Ответ 2
Mongo использует более "традиционные" запросы. Вы включаете индексирование на основе каждой клавиши и используете синтаксис SQLish запроса.
Представления CouchDB могут делать гораздо более глубокие индексирование и отношения, но требуют от вас немного больше работы и понимания того, как работает сортировка ключей для выполнения запросов.
Существует большая разница в системах репликации. Репликация Mongo очень похожа на большинство решений RDBMS с мастерами и рабами и все такое. Репликация CouchDB более равноправна, не является ведущим/ведомым, каждый CouchDB является node.
Ответ 3
Репликация CouchDB выполняется для синхронизации географически расположенных сайтов. Он корректно обрабатывает сетевые и другие ошибки, перезапуская репликацию, где она остановилась. Участвующие узлы могут даже быть настроены автономно.
Ответ 4
Прежде чем использовать MongoDB, я рекомендую вам взглянуть на следующее: http://groups.google.com/group/mongodb-user/browse_thread/thread/460dbd49a5b6b267. У MongoDB есть небольшая вероятность развращения данных из-за отсутствия fsync при каждой записи.
Ответ 5
http://nosql.mypopescu.com/post/298557551/couchdb-vs-mongodb
Ответ 6
С точки зрения разработчика наибольшая разница заключается в том, что mongo - прямые запросы против кушетки (которые должны быть "скомпилированы" ).
С оперативной точки зрения кушетка полностью работает на http-rest. Если вы можете настроить HTTP-серверы, вы знаете, как настроить тренера. С Mongo вместо этого вы должны научиться настраивать серверы конфигурации, набор реплик и mongos (вид балансировки).