84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
Mysql はマスターとスレーブで構成されており、スレーブ データベースは遅いステートメントのクエリに使用されます。クエリ中にテーブルがロックされている場合、マスター データベースは常にそのテーブルをコピーしますか?それとも、遅いクエリが完了するまで待ってからコピーするのでしょうか?
マスターとスレーブの同期は binlog を通じて実行されます。スレーブ ライブラリには 2 つのスレッドがあり、1 つは binlog ログの受信を担当し、もう 1 つはログの解析とライブラリへのデータの書き込みを担当します。したがって、一般にマスタとスレーブの同期にはある程度の遅延が生じます。
読み取り/書き込みロックの問題に関しては、書き込みロックは排他的であり、読み取りロックは複数回取得できます。 Innodb では、ロックはテーブル ロック、行ロック、ギャップ ロックに分類されます。挿入操作でテーブルのロックが必要な場合、クエリでテーブルの行をロックする場合は、当然ながら待機する必要があります。
質問をもう一度よく考えてください。
私の質問の理解によると、マスター ライブラリがスレーブ ライブラリをリアルタイムで複製していると確信していますか? このロジックには何か問題があります。
誤解を招きやすい、マスターとスレーブのレプリケーション。通常、スレーブ ライブラリではレプリケーション プロセス以外の書き込み操作は許可されません。もちろん、手動でロックを解除する必要がある場合でも、スレーブ ライブラリのクエリ操作はレプリケーション書き込みプロセスをブロックしません。メイン ライブラリは、スレーブ ライブラリからのデータをロックされたレコードに同期し、スレーブ ライブラリのロックを待機するため、スレーブ ライブラリの書き込みアクションは、管理者を除くすべてが厳密に制御される必要があります
マスターとスレーブの同期は binlog を通じて実行されます。スレーブ ライブラリには 2 つのスレッドがあり、1 つは binlog ログの受信を担当し、もう 1 つはログの解析とライブラリへのデータの書き込みを担当します。したがって、一般にマスタとスレーブの同期にはある程度の遅延が生じます。
読み取り/書き込みロックの問題に関しては、書き込みロックは排他的であり、読み取りロックは複数回取得できます。 Innodb では、ロックはテーブル ロック、行ロック、ギャップ ロックに分類されます。挿入操作でテーブルのロックが必要な場合、クエリでテーブルの行をロックする場合は、当然ながら待機する必要があります。
質問をもう一度よく考えてください。
私の質問の理解によると、マスター ライブラリがスレーブ ライブラリをリアルタイムで複製していると確信していますか? このロジックには何か問題があります。
誤解を招きやすい、マスターとスレーブのレプリケーション。通常、スレーブ ライブラリではレプリケーション プロセス以外の書き込み操作は許可されません。もちろん、手動でロックを解除する必要がある場合でも、スレーブ ライブラリのクエリ操作はレプリケーション書き込みプロセスをブロックしません。メイン ライブラリは、スレーブ ライブラリからのデータをロックされたレコードに同期し、スレーブ ライブラリのロックを待機するため、スレーブ ライブラリの書き込みアクションは、管理者を除くすべてが厳密に制御される必要があります
。