sql >> データベース >  >> NoSQL >> MongoDB

MongoDBとCassandra

    すべてのクエリで多くの読み取りが行われ、通常の書き込みが少なくなります

    どちらのデータベースも、ホットデータセットがメモリに収まる読み取りで適切に機能します。どちらも結合のないデータモデルを強調し(代わりに非正規化を促進し)、MongoDBのインデックスは現在より柔軟ですが、どちらもドキュメントまたは行にインデックスを提供します。

    Cassandraのストレージエンジンは、データセットがどれほど大きくなっても、一定時間の書き込みを提供します。 MongoDBでは、書き込みがより問題になります。これは、bツリーベースのストレージエンジンが原因の1つですが、複数粒度ロックが原因です。

    分析のために、MongoDBはカスタムmap/reduce実装を提供します。 Cassandraは、Hive(Hadoop map / reduce上に構築されたSQLデータウェアハウス)およびPig(SQLよりもmap / reduceワークロードに適していると多くの人が考えるHadoop固有の分析言語)を含むネイティブHadoopサポートを提供します。 CassandraはSparkの使用もサポートしています。

    「大規模な」スケーラビリティについて心配する必要はありません

    単一のサーバーを検討している場合は、MongoDBの方がおそらく適しています。スケーリングについてより懸念している人にとっては、Cassandraの単一障害点のないアーキテクチャはセットアップが簡単で信頼性が高くなります。 (MongoDBのグローバル書き込みロックもより苦痛になる傾向があります。)Cassandraは、複数のデータセンターのサポートなど、レプリケーションの動作をより詳細に制御することもできます。

    簡単なセットアップ、メンテナンス、コードについてもっと心配する

    どちらもセットアップは簡単で、単一サーバーのデフォルトはすぐに使用できます。 Cassandraは、心配する特別な役割のノードがないため、マルチサーバー構成でのセットアップが簡単です。

    現在JSONBLOBを使用している場合、MongoDBはBSONを使用してデータを格納することを考えると、ユースケースに非常に適しています。現在のデータベースよりも豊富でクエリ可能なデータを使用できるようになります。これはMongoにとって最も重要な勝利です。



    1. MongoDBで複数のコレクションを検索する

    2. Couchbaseベンチマークは、非常に遅いINSERTとGET(KeyValue操作を使用)を明らかにします。永続化されたMySQLデータよりも遅い

    3. MongoDB-範囲クエリの並べ替えと制限時にインデックスが使用されない

    4. Apache HBase Medium Object Storage(MOB)コンパクションパーティションポリシーの紹介