私は自分の mysql データベースにマスター/スレーブ設定を使用したことがないので、ここで意味をなさない場合はご容赦ください。
マスター DB と 3 つのスレーブ DB が必要だとしましょう。マスター DB に接続してエントリを追加/更新/削除するには、データベース クラスを作成する必要がありますか、それとも何らかの形で自動化されていますか?
また、SELECT クエリの場合、ランダムな DB サーバーをランダムに選択するようにコーディングする必要がありますか?
私は自分の mysql データベースにマスター/スレーブ設定を使用したことがないので、ここで意味をなさない場合はご容赦ください。
マスター DB と 3 つのスレーブ DB が必要だとしましょう。マスター DB に接続してエントリを追加/更新/削除するには、データベース クラスを作成する必要がありますか、それとも何らかの形で自動化されていますか?
また、SELECT クエリの場合、ランダムな DB サーバーをランダムに選択するようにコーディングする必要がありますか?
使用 (および調査) したいのはMySQL Replicationです。これは、コードとは完全に独立して処理されます。1 台または 100 台のサーバーがある場合と同じように、データベースを操作します。
パフォーマンス/バランス負荷を改善したいようですね
はい、マスターデータベースに破壊的な変更を加える必要があります。スレーブは読み取り専用にのみ使用できます。また、マスターへの書き込みとスレーブからの読み取りを瞬時に行わないように注意する必要があります。そうしないと、データがまだスレーブに複製されていない可能性があります。そのため、瞬時の読み取りは引き続きマスターから行う必要があります。
ランダムにスレーブを選択することはお勧めしません。分散している場合は地理的リージョンごとにこれを行うことができます。または、クラスターで実行している場合は、プロキシを使用して負荷分散を行うことができます..
ここに役立つ情報がいくつかあります
http://agiletesting.blogspot.com/2009/04/mysql-load-balancing-and-read-write.html
マスター/スレーブのセットアップは MySQL サーバーによって自動的に処理されるため、この構成に特別なコードは必要ありません。