自動的に割り当てている場合、書き込み時にホットスポットは生じません。ドキュメント数が少ないコレクションで、新しいドキュメントを頻繁に作成する。タイムスタンプのように単調に増加するフィールドを持つ新しいドキュメントを非常に高い頻度で作成する。コレクション内のドキュメントを高頻度で削除する。トラフィックを徐々に増やすことなく、高頻度でデータベースに書き込みを行う。削除されたデータをスキップするようなクエリを避ける最近削除されたデータをスキップするようなクエリの使用を避けてください。エントリをスキップしなければならない場合があります。大量の削除データをスキップしなければならない可能性があるワークロードの例としては、キューに含まれている最も古い作業アイテムを見つけるという操作が挙げられます。そのようなクエリの例を以下に示します。エントリをスキャンします。これにより、クエリの処理速度が低下します。メソッドを使用して開始するのに適した場所を見つけます。上記の例では単調増加するフィールドを使用していますが、これは書き込みレートが高い場合にはアンチパターンです。トラフィックの増加に合わせてドキュメントを準備できるように、新しいコレクションまたは辞書順で近いドキュメントに対するトラフィックを徐々に増やしていく必要があります。増やしていくことをおすすめします。標準アカウントには上限があります。オペレーションがキー範囲全体に比較的均等に分散するよう注意してください。これは「500/50/5」ルールといいます。新しいコレクションへのトラフィックの移行アプリのトラフィックをコレクション間で移行する場合、段階的な増加は特に重要になります。この移行を簡単に処理するには、まず古いコレクションから読み取りを行い、ドキュメントが存在しない場合に新しいコレクションから読み取りを行います。新しいコレクション内で辞書的に近いドキュメントのトラフィックが急増する可能性があります。トラフィックの増加に合わせて新しいコレクションを効率的に準備できない可能性があります(特にドキュメントが少ない場合)。変更した場合も、同様の問題が発生する可能性があります。トラフィックを新しいコレクションに移行する最善の方法はデータモデルによって異なります。以下では「同時読み込み」という方法について説明します。この方法が実際のデータに対して効果的かどうかは、ご自身で判断する必要があります。移行中の同時操作によるコスト増も考慮する必要があります。同時読み取りトラフィックを新しいコレクションに移行するときに同時読み取りを行うには、まず古いコレクションから読み取りを行います。ドキュメントが見つからない場合は、新しいコレクションから読み取ります。存在しないドキュメントを高頻度で読み取るとホットスポットが生じる可能性があるため、新しいコレクションへの負荷を徐々に増やしていく必要があります。良い方法としては、古いドキュメントを新しいコレクションにコピーしてから古いドキュメントを削除する方法があります。新しいコレクションへのトラフィックを確実に処理できるように、同時読み取りを徐々に増やしていきます。決定論的ハッシュを使用して、新しいドキュメントに書き込みを行うユーザーの割合をランダムに選択する方法も考えられます。ハッシュの結果が関数やユーザーの行動によって偏らないようにする必要があります。古いドキュメントから新しいコレクションにすべてのデータをコピーするバッチジョブを実行する方法もあります。書き込みを避ける必要があります。バッチジョブが終了すると、新しいコレクションからのみ読み取りが可能になります。この方法を改善してみましょう。一度に移行するユーザーを小さいバッチにまとめます。ドキュメントに追加します。ハッシュに基づいて、移行するユーザーのバッチを選択します。このユーザーのバッチのドキュメントを移行するバッチジョブを使用して、移行の途中でユーザーの同時読み取りを行います。ロールバックは簡単にはできません。ロールバックを行うには、移行段階が完了するまで新旧両方のエンティティに二重に書き込む必要があります。機密情報を含めないでください。プロジェクトの有効期間を超えて存続する場合があります。プラクティスとして、ドキュメント名とドキュメントのフィールド名には機密情報を保存しないことをおすすめします。ルールを使用して、データベースに対する不正オペレーションを防止します。ルールを使用することによって、悪意のあるユーザーがデータベース全体を繰り返しダウンロードする行為を防止できます。ルールの使用をご覧ください。ライセンスにより使用許諾されます。ライセンスにより使用許諾されます。サイトのポリシーをご覧ください。関連会社の登録商標です。