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

単一のマシンでの日付によるMongoDBシャード

    技術的には、コンテンツをシャーディングする必要はなく、フィールドにインデックスを付けるだけです。はい、日付フィールドにインデックスを作成できます。クエリプラン db.collection.explain( "executionStats")にアクセスすると表示されます。

    ただし、シャードキーの選択は非常に重要です。シャードキーを選択する際に考慮すべきことがいくつかあります

    - Write scaling (high cardinality, Randomization)
    - Query Isolation. (read)
    

    日付フィールドを選択すると、実際には非常に高いカーディナリティが得られますが、ランダム化に失敗し、その結果、すべてのドキュメントが単一のシャードに格納されるため、システムの書き込み容量が制限されます。同じ理由で、ObjectIdをシャードキーとして使用することはお勧めしません。

    http://docs.mongodb.org/manual/core/sharding-シャードキー/ 上記のリンクのコンテンツ.."MongoDBはドキュメントの作成時にObjectId値を生成して、オブジェクトの一意の識別子を生成します。ただし、この値のデータの最上位ビットはタイムスタンプを表します。つまり、規則的で予測可能なパターン。この値のカーディナリティは高くなりますが、これ、任意の日付、またはその他の単調に増加する数値をシャードキーとして使用すると、すべての挿入操作でデータが単一のチャンク、つまり単一のシャードに格納されます。その結果、このシャードの書き込み容量によって、クラスターの有効な書き込み容量が決まります。」



    1. 1対1および1対多の参照の削除-マングース

    2. MongoDB 3.6メンバーを3.4レプリカセットに追加するときに、同期ソースに機能互換性バージョンエラーはありませんでした

    3. Redisの名前空間?

    4. モンゴIDは恐ろしいURLにつながります