MongoDBの一般的なポイント
長所:
- スキーマレス。柔軟なスキーマがある場合、これはMongoDBのようなドキュメントストアに最適です。これは、RDBMSで高性能な方法で実装するのが難しい
- スケールアウトの容易さ。レプリカセットを使用して読み取りをスケーリングします。シャーディング(自動バランス)を使用して書き込みをスケーリングします。別のマシンを起動して、離れてください。マシンの追加=ワーキングセットの配布先として、さらにRAMを追加.
- コスト。もちろんどのRDBMSにも依存しますが、MongoDBは無料であり、Linuxで実行でき、安価な商品キットで実行するのに最適です。
- データの値に応じて、必要な一貫性のレベルを選択できます(たとえば、パフォーマンスの高速化= MongoDBへの挿入の起動と破棄、パフォーマンスの低下=戻る前に挿入が複数のノードにレプリケートされるまで待機)
短所:
- MongoDBのデータサイズは通常、たとえば各ドキュメントにはフィールド名が保存されています
- クエリでの柔軟性の低下(たとえば、JOINなし)
- トランザクションのサポートなし-特定のアトミック操作が単一のドキュメントレベルでサポートされます
- 現時点では、Map/Reduce(集約/データ分析など)は問題ありませんが、非常に高速ではありません。それが必要な場合、Hadoopのようなものをミックスに追加する必要があるかもしれません
- 利用可能な最新情報が少ない/進化の速い製品
私は最近 私の考えをブログに書いた SQL Serverのバックグラウンドから来た誰かとしてMongoDBで、あなたはそれに興味があるかもしれません(上記の要点のほんの一部です)。
「RDBMSよりもMongoDBの方が良い」という答えを探している場合-私見では答えはありません。 MongoDBのようなNoSQLテクノロジーは、RDBMSテクノロジーを補完する代替手段を提供します。 1つは他の目的よりも特定の目的により適している場合があるため、特定の要件に最適なものを呼び出すことがすべてです。