Web で見つけたものから、mysql はデータを変更するステートメントを bin ログに保存し、それをスレーブが読み取ります。これらの声明が次にどうなるかは不明のままです。それらはスレーブ サーバーで発生したかのように再生されますか?
たとえば、「UPDATE something SET updatedat = NOW()」のように、条件に現在の時刻を含むクエリがあり、レプリケーションの遅延により、クエリは数秒後にスレーブで終了するとします。表の値は異なりますか?
または、マスター マスター レプリケーションがある場合、時刻 1000 に次のクエリがサーバー 1 で発生します。
UPDATE t SET data = 'old', updatedat = 1000 WHERE updatedat < 1000
サーバー 2 の時刻 1001 で、次のクエリが発生します。
UPDATE t SET data = 'new', updatedat = 1001 WHERE updatedat < 1001
次に、サーバー 2 がサーバー 1 から複製ログをフェッチすると、サーバー 2 の値は「古い」になりますか? もしそうなら、それを避ける方法はありますか?