検索

ホームページ  >  に質問  >  本文

mysql のマスター/スレーブおよびスレーブ データベース ロック テーブルはレプリケーションのブロックを引き起こしますか?

Mysql はマスターとスレーブで構成されており、スレーブ データベースは遅いステートメントのクエリに使用されます。クエリ中にテーブルがロックされている場合、マスター データベースは常にそのテーブルをコピーしますか?それとも、遅いクエリが完了するまで待ってからコピーするのでしょうか?

淡淡烟草味淡淡烟草味2764日前1301

全員に返信(3)返信します

  • 巴扎黑

    巴扎黑2017-06-22 11:56:33

    1. マスターとスレーブの同期は binlog を通じて実行されます。スレーブ ライブラリには 2 つのスレッドがあり、1 つは binlog ログの受信を担当し、もう 1 つはログの解析とライブラリへのデータの書き込みを担当します。したがって、一般にマスタとスレーブの同期にはある程度の遅延が生じます。

    2. 読み取り/書き込みロックの問題に関しては、書き込みロックは排他的であり、読み取りロックは複数回取得できます。 Innodb では、ロックはテーブル ロック、行ロック、ギャップ ロックに分類されます。挿入操作でテーブルのロックが必要な場合、クエリでテーブルの行をロックする場合は、当然ながら待機する必要があります。

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-06-22 11:56:33

    質問をもう一度よく考えてください。

    私の質問の理解によると、マスター ライブラリがスレーブ ライブラリをリアルタイムで複製していると確信していますか? このロジックには何か問題があります。

    返事
    0
  • 高洛峰

    高洛峰2017-06-22 11:56:33

    誤解を招きやすい、マスターとスレーブのレプリケーション。通常、スレーブ ライブラリではレプリケーション プロセス以外の書き込み操作は許可されません。もちろん、手動でロックを解除する必要がある場合でも、スレーブ ライブラリのクエリ操作はレプリケーション書き込みプロセスをブロックしません。メイン ライブラリは、スレーブ ライブラリからのデータをロックされたレコードに同期し、スレーブ ライブラリのロックを待機するため、スレーブ ライブラリの書き込みアクションは、管理者を除くすべてが厳密に制御される必要があります

    返事
    0
  • キャンセル返事