非同期レプリケーションを内蔵していますが、さらにプラグインによって実装される準同期レプリケーションへのインタフェースをサポートします。このセクションでは、準同期レプリケーションの概要とその動作について説明します。後続のセクションでは、準同期レプリケーションへの管理インタフェース、およびこれをインストール、構成、およびモニターする方法について説明します。レプリケーションはデフォルトで非同期です。マスターはイベントをそのバイナリログに書き込みますが、スレーブがそれらを取得して処理したかどうかまたはその日時を認識しません。非同期レプリケーションでは、マスターがクラッシュしても、それがコミットしたトランザクションがスレーブに転送されていない場合があります。このケースでマスターからスレーブへのフェイルオーバーが発生すると、マスターに関係するトランザクションがないサーバーにフェイルオーバーされる場合があります。準同期レプリケーションは非同期レプリケーションの代替として使用できます。スレーブは、マスターに接続されるときに準同期対応かどうかを伝えます。つの準同期スレーブがそのトランザクションのすべてのイベントを受け取ったことを通知するか、タイムアウトが発生するまで、待機します。スレーブは、イベントがそのリレーログに書き込まれてディスクにフラッシュされたあとにのみ、トランザクションのイベントを受け取ったことを通知します。スレーブからのトランザクション受け取り通知がない状態でタイムアウトが発生した場合、マスターは非同期レプリケーションに戻ります。つの準同期スレーブが追い付いたときに、マスターは準同期レプリケーションに戻ります。準同期レプリケーションはマスターとスレーブの両方で有効になっている必要があります。準同期レプリケーションがマスターで無効になっている場合、またはマスター上で有効でもスレーブ上でそうなっていない場合は、マスターは非同期レプリケーションを使用します。トランザクションを実行したセッションに戻りません。ブロックが終了すると、マスターはそのセッションに戻り、ほかのステートメントの実行に進めます。つのスレーブから通知されています。ブロックはバイナリログに書き込まれるロールバック後にも発生し、これは非トランザクションテーブルを変更するトランザクションがロールバックされるときに発生します。ロールバックされるトランザクションは、トランザクションテーブルに影響しない場合を含めて、ログが記録されます。非トランザクションテーブルへの変更はロールバックできず、スレーブに送信される必要があるためです。起動されなかったとき)、自動コミットが有効になっていて、各ステートメントは暗黙的にコミットされます。準同期レプリケーションでは、明示的なトランザクションコミットと同様に、マスターはこのような各ステートメントをコミットしたあとにブロックされます。「準同期レプリケーション」の「準」の意味を理解するには、非同期および完全同期レプリケーションと比較してください。非同期レプリケーションでは、マスターはイベントをそのバイナリログに書き込み、スレーブは準備ができたときにそれらを要求します。イベントがスレーブに必ず到達することは保証されていません。完全同期レプリケーションでは、マスターがトランザクションをコミットすると、マスターがトランザクションを実行したセッションに戻る前に、すべてのスレーブもトランザクションをコミットします。これの欠点は、トランザクションの完了が大きく遅れる場合があることです。準同期レプリケーションは、非同期および完全同期レプリケーションの中間です。つのスレーブがイベントを受け取ってログを記録するまで待機します。すべてのスレーブが受け取りを通知するのを待機せず、スレーブ側でイベントが完全に実行されてコミットされたことではなく、受け取りのみを要求します。準同期レプリケーションでは、非同期レプリケーションに比べて、データの完全性が向上します。存在することがわかります。マスターはコミットしたけれども、マスターがスレーブからの通知を待機中にクラッシュが発生した場合は、トランザクションがスレーブに到達できなかった可能性があります。準同期レプリケーションは、バイナリログイベントをマスターからスレーブに送信できる速度を制限することで、ビジーセッションに速度制限を設定することもできます。あるユーザーがとてもビジーのときは、これによって速度が遅くなり、一部の配備状況で役立ちます。準同期レプリケーションは、スレーブを待機する必要性によってコミットが遅くなるため、パフォーマンスに若干影響します。これは、データ完全性の向上とのトレードオフです。ラウンドトリップ時間以上です。これは、準同期レプリケーションは高速ネットワーク上で通信する近いサーバーに最適で、低速ネットワークで通信する遠いサーバーに最悪であることを意味します。