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

ドキュメントベースのデータベースとキー/値ベースのデータベースの違いは?

    主な違いは、データモデルとクエリ機能です。

    キーバリューストア

    最初のタイプは非常に単純で、おそらくこれ以上の説明は必要ありません。

    データモデル:Key-Valueストア以上のもの

    Cassandraなどのデータベースの正しい名前についてはいくつかの議論がありますが、私はそれらを列ファミリーストアと呼びたいと思います。 。キーと値のペアはCassandraの重要な部分ですが、それだけに限定されません。キーと値のペアをネストできるため、キーは複数のサブキーと値のペアを参照できます。

    ただし、キーと値のペアを無期限にネストすることはできません。 3つのレベル(列ファミリー)または4つのレベルのネスト(スーパー列ファミリー)に制限されています。列ファミリーという用語がベルを鳴らさない場合は、WTFがSuperColumnの記事であるを参照してください。これは、Cassandraのデータモデルの良い説明です。

    ドキュメントデータベース 、CouchDBやMongoDBなどは、ドキュメント全体をJSONオブジェクトの形式で保存します。これらのオブジェクトは、ネストされたキーと値のペアと考えることができます。 Cassandraとは異なり、キーと値のペアを必要なだけネストできます。 JSONは配列もサポートし、文字列、数値、ブール値などのさまざまなデータ型を理解します。

    クエリ

    列ファミリーストアは、キーまたはmap-reduce関数を作成することによってのみクエリできると思います。 SQLデータベースのように値を照会することはできません。アプリケーションでより複雑なクエリが必要な場合は、目的のデータにアクセスするために、アプリケーションでインデックスを作成して維持する必要があります。

    ドキュメントデータベースは、キーおよびmap-reduce関数によるクエリもサポートしますが、「10件を超える投稿を持つすべてのユーザーを指定してください」などの基本的なクエリを値で実行することもできます。このように、ドキュメントデータベースはより柔軟になります。



    1. エラー:127.0.0.1:6379へのRedis接続に失敗しました-ECONNREFUSED127.0.0.1:6379に接続してください

    2. Stackexchange.RedisなぜConnectionMultiplexer.Connectが2つのクライアント接続を確立するのですか?

    3. Laravelでジョブをキャンセルする

    4. AlpineOS上のPhp7Redisクライアント