1. マスタースレーブレプリケーションマスタースレーブレプリケーション: 実際の運用では、MySQL の単一障害点を解決し、MySQL の全体的なサービスパフォーマンスを向上させるために、マスタースレーブレプリケーションが一般的に使用されます。つまり、データベース内のデータとステートメントをバックアップします。 マスタースレーブレプリケーション3スレッドMySQL のマスター スレーブ レプリケーションには、マスター (バイナリ ログ ダンプ スレッド)、スレーブ (I/O スレッド、SQL スレッド)、マスターに 1 つのスレッド、スレーブに 2 つのスレッドという 3 つのメイン スレッドがあります。 マスタースレーブレプリケーションプロセス マスタースレーブレプリケーションのプロセス:マスターの主な役割は、マスター ライブラリでデータの更新があった場合に、更新されたイベント タイプを binlog 形式でマスター ライブラリの binlog ファイルに書き込むことです。マスターはログ ダンプ スレッドを作成し、メイン データベースにデータ更新があることをスレーブに通知します。 I/O スレッドはスレーブで作成され、マスターに要求するために使用されます。マスターは、バイナリログの名前、現在のデータ更新の場所、およびバイナリログ ファイルの場所のコピーを返します。次に、バイナリログはリレーログに保存され、データの更新に関する情報も記録されます。 SQL スレッドはスレーブにも作成されます。スレーブはリレー ログが更新されたことを検出すると、更新された内容をスレーブ データベースに同期し、マスターとスレーブのデータの同期を確実にします。 マスタースレーブレプリケーション戦略 マスタースレーブレプリケーション戦略:同期戦略: マスターはコミットする前にすべてのスレーブが応答するのを待機します。これは、マスターとスレーブの同期のパフォーマンスに重大な影響を及ぼします。 半同期戦略: マスターはコミットする前に少なくとも 1 つのスレーブが応答するのを待ちます。 非同期戦略: マスターはスレーブの応答を待たずに送信できます。 遅延戦略: スレーブはマスターによって指定された時間より遅れる必要があります。 マスタースレーブレプリケーションにおける高レイテンシマスタースレーブレプリケーションにおける高レイテンシの理由 マスターサーバーは同時実行性が高く、多数のトランザクションが発生する ネットワーク遅延 マスターおよびスレーブ ハードウェア デバイス (CPU メイン周波数、メモリ IO、ハード ディスク IO) によって発生します。 これは同期レプリケーションではなく、非同期レプリケーションです。 マスタースレーブレプリケーションの高レイテンシに対するソリューション データベースからMysqlパラメータを最適化します。たとえば、innodb_buffer_pool_sizeを増やすと、より多くの操作がmysqlメモリ内で完了し、ディスク操作が削減されます。 データベースから高性能ホスト(高性能CPU、大容量メモリ)を使用し、仮想クラウドホストの使用を避け、物理ホストを使用してI/Oスループットを向上させる ライブラリのSSDディスクを使用する コンピュータルーム間の同期を回避するためのネットワーク最適化 2. 読み取りと書き込みの分離読み取りと書き込みの分離の概念読み取り/書き込みの分離: 読み取り/書き込みの分離により、プライマリ データベースはトランザクションの追加、削除、および変更操作 (INSERT、UPDATE、DELETE) を処理し、セカンダリ データベースはクエリ (SELECT) 操作を処理できます。データベース レプリケーションは、トランザクション操作によって発生した変更をクラスター内のスレーブ データベースに同期するために使用されます。 読み取りと書き込みを分離する理由とシナリオ読み取りと書き込みを分離する理由: 読み取りと書き込みの量が多い。データベースの読み取りと書き込みのパフォーマンスを向上させるために、読み取りと書き込みを分離します。複数のコンピュータ ルームで読み取りが書き込みよりも多い場合、データの一貫性を考慮して、1 つのマスター データベースのみがすべてのデータ書き込みを保存し、ローカル スレーブ データベースが読み取りを提供して、複数のコンピュータ ルーム間の直接読み取りによって発生する遅延を減らします。 読み取り/書き込み分離の使用シナリオ: プログラムがデータベースをより頻繁に使用するが、更新は少なく、クエリは多い場合に考慮されます。データベースのマスター/スレーブ同期と読み取り/書き込み分離を使用することで、データベースの負荷を分散し、パフォーマンスを向上させることができます。 要約するこれで、MySQL データベースのマスター スレーブ レプリケーションと読み取り/書き込み分離に関するこの記事は終了です。MySQL マスター スレーブ レプリケーションと読み取り/書き込み分離の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: JavaScriptタイマーとボタン効果設定の詳細な説明
1. Nginxの簡単な紹介Nginx は、無料のオープンソースの高性能 HTTP サーバーおよびリ...
コンピュータ ルームのサーバー上の mysql がしばらく実行されていたのですが、突然、再起動しても...
同僚から、MySQL データ型 DECIMAL(N,M) の N と M の意味を尋ねられました。言...
Docker プロセス、メモリ、カップ消費量を表示dockerコンテナを起動し、dockerinsp...
このブログ投稿は、ブロガーが数日前に取り組んだプロジェクトで遭遇した困難についてです。これを学んだ後...
目次1. 環境の紹介2. MySQL-8.0.19をインストールする3. MySQLを設定する1. ...
1. スクロールビュー垂直スクロールを使用する場合は、固定の高さを指定して CSS で高さを設定する...
この記事から、MySQL を紹介し学習するための新しい一連の記事がスタートします。なぜ MySQL ...
Linux では、通常、ファイルの名前を変更するために mv コマンドを使用します。これは、単一のフ...
目次序文コンテナ間の通信を容易にするためのブリッジネットワークを作成するCentOS7イメージを使用...
重要な注意: この記事を読む前に、Docker コンテナに関する知識と、一般的な Docker 操作...
序文Linux 環境で作業するエンジニアは、これらの面倒な命令とパラメータのコマンドラインにきっと驚...
前回の記事では、docker サービスをインストールしました。引き続き、Web プロジェクトのデプロ...
HTML 初心者向けのベストプラクティスを 30 個紹介します。 1. タグを閉じたままにする過去に...
今日、入力イベントに関するブログ投稿を見て、気まぐれで関連情報を整理してみました。イベント:関数 c...