web-dev-qa-db-ja.com

MongoDBの長所と短所

特にリレーショナルデータベースと比較して、mongodbの長所と短所を教えてもらえますか? ACID、スケーラビリティ、スループット、メインメモリ使用量、挿入/クエリパフォーマンス、インデックスサイズなどが含まれます。

68
zbdiablo

MongoDBの一般的なポイント

長所:

  • スキーマレス。柔軟なスキーマがある場合、これはMongoDBのようなドキュメントストアに最適です。これは、RDBMSで高性能な方法で実装するのが難しい
  • スケールアウトの容易さ。レプリカセットを使用して読み取りをスケーリングします。シャーディング(自動バランス)を使用して書き込みをスケーリングします。別のマシンを起動して、離れてください。マシンの追加=ワーキングセットの配布先として、さらにRAMを追加.
  • コスト。もちろんどのRDBMSにも依存しますが、MongoDBは無料であり、Linuxで実行でき、安価な商品キットで実行するのに最適です。
  • データの値に応じて、必要な一貫性のレベルを選択できます(たとえば、パフォーマンスの高速化= MongoDBへの挿入の起動と破棄、パフォーマンスの低下=戻る前に挿入が複数のノードにレプリケートされるまで待機)

短所:

  • MongoDBのデータサイズは通常、たとえば各ドキュメントにはフィールド名が保存されています
  • クエリでの柔軟性の低下(たとえば、JOINなし)
  • トランザクションのサポートなし-特定のアトミック操作が単一のドキュメントレベルでサポートされます
  • 現時点では、Map/Reduce(集約/データ分析など)は問題ありませんが、非常に高速ではありません。それが必要な場合、Hadoopのようなものをミックスに追加する必要があるかもしれません
  • 利用可能な最新情報が少ない/進化の速い製品

私は最近 私の考えをブログに書いた SQL Serverのバックグラウンドから来た誰かとしてMongoDBで、あなたはそれに興味があるかもしれません(上記の要点のほんの一部です)。

「RDBMSよりもMongoDBの方が良い」という答えを探している場合-私見では答えはありません。 MongoDBのようなNoSQLテクノロジーは、RDBMSテクノロジーを補完する代替手段を提供します。 1つは他の目的よりも特定の目的により適している場合があるため、特定の要件に最適なものを呼び出すことがすべてです。

117
AdaTheDev