MySQLレプリケーションの遅延はどうしますか?


MySQLレプリケーションは、プライマリ・サーバが変更された後、サーバから数秒以内に変更できると一般的に考えられています.しかし、両者の同期が遅いという問題が発生した場合、主に次の理由があります.
ノードディスクの問題:レプリケーション操作は、各データベースに対して1つのスレッドで行われます.通常、変更を実行する際のヒステリシスは、ディスクの遅延によって発生します.この場合、SSDを使用してこのプロセスを加速することを考慮する必要があります.
帯域幅が低い/ネットワーク遅延が高い:2つのサーバがリモートロケーション(高遅延の場合)またはサーバ間で帯域幅が低いという問題がある場合は、次のいずれかの方法または両方を組み合わせて使用して、サーバ間の通信量を最小限に抑える必要があります.
文ベースのレプリケーションの使用:ローベースのレプリケーションにより、データベース内の各ローの変更に対してSQL文が作成されます.文ベースのレプリケーションは、アプリケーションが送信した実際のSQL文のレコードです.通常、文ベースのレプリケーションは、レコードサイズの面でより効果的です.しかし、UPDATEを使うと...LIMIT 1の場合、文ベースのレプリケーションはあまり有効ではない可能性があります
圧縮トラフィック:MySQLはslave_の使用をサポートcompressed_protocolパラメータはログ圧縮レプリケーションを行います.この方法は、サーバ間の通信を80%まで削減します.しかし、圧縮は計算が密集しているので、追加のCPU使用率が発生することを認識する必要があります(これは通常、データベースの問題ではありません).このパラメータは両方のサーバで有効にする必要があります.
動的にMySQLコマンドラインから入力:SET GLOBALslave_compressed_protocol = 1;
MySQLプロファイルでの設定:
#compress master-slave communication slave_compressed_protocol = 1

少なくとも、レプリケーションの動作がなぜ遅延しているのかを理解し、遅延問題を解決するために正しい方法をどのように使用するかを理解します.はい、それは簡単で、非常に効果的です.