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

MongoDBの長所と短所は?

    MongoDBに関するいくつかの一般的なポイント

    長所:

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

    短所:

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

    最近、自分の考えをブログに書きました MongoDBでSQLServerのバックグラウンドを持っている人として、それに興味があるかもしれません(上記は主なポイントのほんの一部です)。

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




    1. キーと値のペアを持つオブジェクトへのmongo配列の変換

    2. クエリデータがzf2に表示されませんか?

    3. 配列をredisに保存するにはどうすればよいですか?

    4. 大規模なMongoDBコレクションをrmongodbとplyrを使用してRのdata.frameに転送します