56

CouchDBMongoDBもまだ手を汚していないのですが、すぐにやりたいと思っています...両方のシステムについても少し読んだので、同じケースをカバーしているように見えます...または重要な識別機能がありませんか?

次のプロジェクトでは、従来のRDBMSの代わりにドキュメントベースのストレージを使用したいと思います。データストアも必要です

  • 大きなバイナリオブジェクト(画像とビデオ)を処理する
  • 物理的に分離されたノードに自動的に複製されます
  • 追加のRDBMSの必要性を不要にする

どちらもこれらの要件に等しく適していますか?

ありがとう!

4

6 に答える 6

49

私は実際に両方をかなり広範囲に使用しましたが、両方とも非常に異なるプロジェクトに使用しました。

あなたがリストした要件にも同様に適していると思いますが、2つの間にはかなりの違いがあります。IMOの最大のものは、クエリ機能です。CouchDBにはRDBMSの意味での「クエリ」はありません(select * from ...)が、代わりにストアドプロシージャ(基本的にはデータベース(1)で定義された静的クエリ)に似た「ビュー」を使用します。MongoDBには、はるかに多くの「通常の」クエリがあります。

基本的に、それはアプリケーションの要件に帰着します。あなたがより多くの情報を与えるならば、私はその状況で何が重要であるかもしれないかについてもう少し光を当てることができるかもしれません。

(1):CouchDBで一時的に非静的なクエリを実行できますが、本番環境での使用はお勧めしません

于 2010-01-02T00:25:06.117 に答える
11

Mongoは、より「従来の」クエリを使用します。キーごとにインデックスをオンにし、SQLishクエリ構文を使用します。

CouchDBのビューは、はるかに深いインデックス作成と関係を実行できますが、もう少し作業を行い、クエリを実行するためのキーの並べ替えの動作を理解する必要があります。

レプリケーションシステムにも大きな違いがあります。Mongoのレプリケーションは、マスターとスレーブなどを備えたほとんどのRDBMSソリューションとよく似ています。CouchDBのレプリケーションはピアツーピアであり、マスター/スレーブはありません。すべてのCouchDBはノードです。

于 2010-01-02T03:42:43.300 に答える
11

CouchDBのレプリケーションは、地理的に離れたサイトの同期を維持するために作成されています。中断したところからレプリケーションを再開することにより、ネットワークエラーやその他のエラーを適切に処理します。参加しているノードは、意図的にオフラインにすることもできます。

于 2010-01-04T10:55:16.943 に答える
4

MongoDBを使用する前に、次の項目を確認することをお勧めします:http: //groups.google.com/group/mongodb-user/browse_thread/thread/460dbd49a5b6b267。MongoDBは、書き込みごとにfsyncがないため、データが破損する可能性がわずかにあります。

于 2010-01-13T15:39:33.780 に答える
2

http://nosql.mypopescu.com/post/298557551/couchdb-vs-mongodb

于 2010-01-13T15:34:08.703 に答える
0

開発者の観点から見ると、最大の違いは、mongoライブクエリとcouchビュー(「コンパイル」する必要があります)です。運用の観点から、couchはhttp-restで完全に機能しています。httpサーバーを構成できる場合は、coachのセットアップ方法を知っています。代わりにMongoを使用すると、構成サーバー、レプリカセット、およびmongos(バランサーの一種)をセットアップする方法を学習する必要があります。

于 2012-02-12T20:53:21.867 に答える