ソリューションとテクノロジーで成功への道筋をつけることができます。Cloudお客様のビジネス全体に役立つ、わかりやすい料金体系です。安全でインテリジェントなプラットフォームを使って今すぐ始めましょう。プロダクトをお試しいただけます。プラクティスについて説明します。ホットスポットを防ぐ主キーの選択方法スキーマとデータモデルで説明したように、データベースに誤ってホットスポットを作成しないように、主キーを慎重に選択する必要があります。値が単調に増加する列を最初のキー部分に選択すると、キー空間の最後にすべての挿入が実行されるため、誤ってホットスポットが作成される可能性があります。キー範囲を使用してサーバー間でデータを分割するため、これは好ましい状況ではありません。単一のサーバーにすべての挿入が割り振られ、すべての作業が実行されることになります。タイムスタンプ列を保持する必要があるとします。以下のテーブル定義は、最初のキー部分としてタイムスタンプに基づく主キーを使用しているため、不適切な方法です。タイムスタンプは常に増加するため、常にテーブルの最後に書き込みが実行されます。サーバーがすべての書き込みを受信するため、ホットスポットが作成されます。つのサーバーに過剰な負荷がかかります。以下の図に全体像を示します。行のデータが格納されています。アクションを実行しています。この図には、行が挿入された順番も記載されています。ラベル付きの矢印が、各行の書き込み順を表しています。挿入は、タイムスタンプ順に行われ、タイムスタンプ値は常に増加しています。このため、挿入は常にテーブルの最後に追加され、同じスプリットに送信されます。以上の関連テーブルの行から構成され、行のキー順で保管されます。異なるサーバーに作業をスプリット単位で割り当てます。そのため、この特定のスプリットに割り当てられたサーバーがすべての挿入リクエストを処理することになります。イベントの頻度が高くなると、対応するサーバーへの挿入リクエストの頻度も高くなります。上の図で、赤い枠線で囲まれ、背景も赤いサーバーがホットスポットになる可能性があります。サーバーに複数のスプリットが割り当てられる可能性もあります。別のスプリットを作成します。詳細については、負荷に基づいた分割をご覧ください。それ以降の行がこの新しいスプリットに付加され、そのスプリットに割り当てられたサーバーが新たなホットスポットになる可能性があります。ホットスポットが発生すると、挿入が遅くなり、同じサーバー上の他の作業も遅くなる可能性があります。列を昇順に並べ替えても、この問題は解決しません。すべての書き込みがテーブルの先頭に挿入されるため、引き続きすべての挿入が単一のサーバーに送信されます。値が単調に増加または減少する列をキーの最初の部分として使用しない。キーの順序を入れ替えるキー空間で書き込みを分散させるには、単調に増加または減少する値を含む列がキーの最初の部分にならないようにキーの順番を入れ替えます。挿入の並べ替えが行われます。人のユーザーが毎秒数千件のイベントを生成することはまずないため、書き込みは異なるスプリットに分散します。並べ替えられています。つのスプリットにチャンクされています。値の順番で格納されています。程度という前提で考えています。イベントがミリ秒間隔で発生しても、各イベントは別のユーザーによって発生します。したがって、タイムスタンプで並べ替えた場合よりも、挿入の順序でホットスポットが作成される可能性は非常に低くなります。ベースのキーによる並べ替えもご覧ください。一意キーのハッシュを作成して、論理シャード間に書き込みを分散する別の方法でも複数のサーバー間で負荷を分散できます。実際の一意キーのハッシュを含む列を作成し、そのハッシュ列を主キーとして使用します(またはハッシュ列と一意のキー列を一緒に使用します)。これにより、新しい行がキー空間全体に均等に分散されるため、ホットスポットの作成を回避できます。ハッシュ値を使用して、データベース内に論理シャードまたはパーティションを作成できます。物理的に分割されたデータベースの場合、行は複数のデータベースに分散されます。論理的に分割されたデータベースの場合、テーブルのデータによってシャードが定義されます。