MongoDB против CouchDB... И любые другие "крупные игроки"
Каковы основные различия между MongoDB и CouchDB, и есть ли другие важные серверы баз данных NO-SQL, которые стоит упомянуть?
Я знаю, что CERN использует CouchDB где-то в своем бэк-энде LHC; огромный штамп одобрения. Что такое ссылки MongoDB и любых других крупных серверов?
Обновить
Для меня одним из главных преимуществ CouchDB является API на основе REST и бесшовная интеграция JavaScript с использованием JSON в качестве оболочки данных. Возможно ли это с любой другой упомянутой базой данных NO-SQL?
3 ответа
Есть еще много различий, но есть несколько быстрых моментов:
- CouchDB имеет MVCC (Multi Version Concurrency Control) - каждый раз, когда документ обновляется, создается его НОВАЯ версия. Принимая во внимание, что MongoDB обновляется на месте.
- CouchDB поддерживает multi-master, поэтому вы можете писать на любой сервер. MongoDB имеет только 1 активный сервер для записи (master-slave) - Однако: возможно, это изменилось в последней версии (1.6), поэтому MongoDB теперь может поддерживать несколько серверов для записи
Чтобы увидеть, кто использует MongoDB, смотрите здесь (например, foursquare, bit.ly, sourceforge....)
Чтобы увидеть, кто использует CouchDB, смотрите здесь.
Самая известная база данных NoSQL - это Cassandra (facebook, twitter). Тогда у вас есть HBase, HyperTable, RavenDB, SimpleDB и многие другие...
Добро пожаловать на новую площадку @AdaTheDev, охватывающую большинство основных. Также есть Project Voldemort, Токийский Кабинет / Тиран и целая куча обёрток вокруг всех этих вещей. Таким образом, люди также создают MemcacheDB (memcache со слоем постоянства).
MongoDB имеет несколько хуков для поддержки API "REST" (проверьте поддержку "Sleepy Mongoose" и Node.js). MongoDB и CouchDB имеют разные способы обработки уменьшений карты (хотя они несколько похожи). MongoDB не имеет MVCC, но две системы действительно имеют разные способы хранения данных, каждый со своим собственным набором компромиссов.
MongoDB использует драйверы, зависящие от языка, где CouchDB использует REST (компромисс производительности).
Для более подробного сравнения смотрите здесь.
MongoDB, вероятно, немного легче понять реляционному разработчику, поскольку он использует драйверы и имеет лучшую поддержку специальных запросов. CouchDB имеет очень мало общего со старыми реляционными способами ведения дел.
Оба имеют дело с шардингом и репликацией по-разному.
Сказав это, я считаю, что оба концептуально достаточно похожи, что часто сводится к личным предпочтениям. Все они интересны для написания кода. Фактически, мы оценили как внутренний проект, так и пошли дальше и дальше с нашим решением.