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

NoSQLデータベース-ログ処理/集計とロールアップの良い候補ですか?

    さまざまなNoSQLソリューションは、さまざまな用途でさまざまな問題を解決します。そのため、最初に行うべき最善のことは、問題を調べて分析することです。

    • あなたは重く書いています ストレージに対して、したがって書き込み速度はあなたにとって重要です
    • そのデータに対して集計操作を実行し、その結果を簡単にクエリできるようにしたい
    • 読み取り速度は、物事の音からはそれほど重要ではありません。少なくとも、「Webアプリケーションは、何百万人もの人々に本当に応答する必要がある」ような方法では重要ではありません。
    • 動的クエリが必要かどうかわかりません

    Couch、Mongo、Ravenを非常に高レベルで一般化された方法で見てみましょう

    レイヴン

    • 高速書き込み
    • 高速クエリ(結果整合性、事前計算、map / reduceによる集計)
    • 動的クエリは可能ですが、日付などでクエリを実行する可能性が高いため、ユースケースにはあまり適していません。

    モンゴ

    • 目がくらむほど高速な書き込み(私の意見では、電源がオフになるとデータが失われるため、危険です;-))
    • 読み取りが遅く(比較的)、事前計算されていない、map/reduceによる集計
    • 動的クエリはwhat_you_doですが、この種のデータで何らかのパフォーマンスが必要な場合は、おそらく列にインデックスを定義する必要があります

    ソファ

    • 高速書き込み
    • 高速な読み取り(事前に計算されていますが、読み取り時にのみ更新されます(IIRC)
    • 動的クエリは不可能です。すべてmapまたはmap/reduce関数を介して事前定義されています

    つまり、基本的に、この種のデータに対して動的なクエリが必要ですか?読み取り速度はあなたにとって非常に重要ですか?動的クエリが必要な場合は、RavenまたはMongoが必要になります(この種の場合、Couchはおそらくあなたが探しているものではありません)。

    FWIW、私の意見ではMongoの唯一のユースケースはロギングであるため、そこに答えがあるかもしれません。




    1. redisのキーの数を取得するにはどうすればよいですか?

    2. マングースJSfindOneは常にnullを返します

    3. mongoose-Model.createで特定のフィールドを選択します

    4. Springブートスターターデータの残り、@Notnull制約が機能しない