外部キー属性に基づいてパーティション分割する必要があるテーブルが DB にあります。したがって、分割されたテーブルの数は、外部キーに存在するさまざまな値の数と同じです。
編集:マスターのテーブルが4つのスレーブサーバーに複製されるレプリケーションセットアップがあります。スレーブは、図に示すように、マスター サーバーのテーブル全体を複製する必要はなく、そのパーティションのみを複製する必要があります。どうすればこれを達成できますか?
外部キー属性に基づいてパーティション分割する必要があるテーブルが DB にあります。したがって、分割されたテーブルの数は、外部キーに存在するさまざまな値の数と同じです。
編集:マスターのテーブルが4つのスレーブサーバーに複製されるレプリケーションセットアップがあります。スレーブは、図に示すように、マスター サーバーのテーブル全体を複製する必要はなく、そのパーティションのみを複製する必要があります。どうすればこれを達成できますか?
何をどのデバイスに送る必要があるかに基づいて、データを個別のテーブルまたは個別のデータベースに分割します。次に、3 つの層があります。
マスター -> リレー -> デバイス
各リレーは、(マスターに対して) スレーブであり、1 つ (または複数) のデバイスに対してマスターです。リレーでは、デバイスに移動したくないテーブルが宣言されていENGINE=BLACKHOLEます。Relay 内の他のテーブルは通常どおり宣言されます。
リレーはマスターと同じサーバー上にある可能性がありますが、それぞれに別のポート (3306 以外) を持つ別の mysqld インスタンスが必要になります。特にリレーはデータのサブセットをハンドオフする以外に何もしていないため、オーバーヘッドはかなり小さくなります。
編集(画像に基づく)
スレーブのスペースを制限するには、スレーブで「replicate_do/ignore」コマンドを使用します。これにより、マスターからスレーブへの帯域幅が減少することはありません。その後、replicate_* 設定によって、レプリケートされたデータのほとんどが破棄されます。
帯域幅をスレーブに制限する必要がある場合は、上記のリレーとブラックホールを導入します。