MongoDBでネイティブにユニークインデックスを作成してシャードする方法
MongoDBでは一意インデックス用のシャードキーを次のメソッドで作成でき
- シャード化インデックスを作成する: sh.shardCollection() メソッドを使用してコレクションをシャード化します。これにより、コレクション内のすべてのドキュメントに対してインデックスが作成され、複数のシャードに分散されます。
- sh.shardCollection(“<データベース>.<コレクション>”, {“<一意Indexフィールド>”: 1})
- ここで はデータベースの名前、 はコレクションの名前、 は一意なインデックスを作成するフィールド名です。
- ハッシュシャードインデックスを作成する: sh.shardCollection()メソッドを使用して、ハッシュフィールドをインデックスフィールドとして指定します。これにより、ドキュメントがハッシュ値に基づいて異なるシャードに分散されます。
- sh.shardCollection(“{db}.{collection}”, { “<ハッシュフィールド>”: “hashed” })
- そのうち、はハッシュインデックスに使用されるフィールド名です。
いずれの手法を選択する場合でも、クラスタがシャーディング機能を有効にしており、データを収容できる十分なシャードが追加されていることを確認する必要があります。シャードキーの選択も非常に重要であり、データの分布とクエリのパフォーマンスに直接影響を与えます。