バージョン 3.23.15 から、MySQL は一方向レプリケーションを内部的にサポートしています。1 つのサーバがマスタとして機能し、別の 1 つまたは複数のサーバがスレーブとなります。マスタサーバが更新のバイナリログを保持します(see 項4.10.4. 「バイナリログ」)。 また、バイナリログのインデックスファイルも保持し、ログのローテーションを記録します。各スレーブは接続時、前回レプリケーションに成功にしている更新の位置をマスタに通知し、それ以降の更新を実行し、その後ブロックして、マスタからの新規更新の通知を待ちます。
レプリケーションサーバをチェーン状に構成すれば、スレーブは他のサーバに対するマスタとしても機能できます。
注意: レプリケーションを使用する場合、テーブルの更新はすべてマスタサーバで実行する必要があります。そうでない場合、ユーザがマスタのテーブルで行った更新とスレーブのテーブルで行った更新との間で競合が発生します。
一方向レプリケーションは、堅牢性、速度、およびシステム管理の面で優れています。
マスタ/スレーブセットアップにより堅牢性が向上する。 マスタで問題があった場合、バックアップとしてスレーブに切り替えることができる。
クライアントクエリの負荷をマスタとスレーブに分散することによって速度を向上でき、その結果クライアントの応答時間が短くなる。
SELECT
クエリをスレーブに送信することにより、マスタのクエリ処理負荷を軽減できる。データを変更するクエリは、マスタとスレーブの整合性を保つため、マスタに送信する必要がある。負荷分散戦略は、更新以外のクエリが多い場合のみ効果がある。通常、この場合が多い。
その他にも、レプリケーションを使用すると、マスタではなくスレーブでバックアップを行えるという利点がある。 See 項4.5.1. 「データベースのバックアップ」。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.