私はWebで見つけたものから、mysqlはビンログのデータを変更するステートメントを保存します。ステートメントはスレーブによって読み込まれます。不明なことは次のステートメントでどうなるかということです。彼らはスレーブサーバーで起こったかのように再生されますか?mysqlレプリケーションはどのように機能しますか?
たとえば、 "UPDATE something SET updatedat = NOW()"のような条件付きで現在の時刻のクエリがあり、レプリケーションの遅延により、数秒後にスレーブでクエリが終了するとします。テーブルの値が異なるのでしょうか?
またはマスター・マスター・レプリケーションがある場合は、時間1000年で次のクエリは、サーバ1に起こります。次のクエリが発生し、サーバ2上の時間1001で
UPDATE t SET data = 'old', updatedat = 1000 WHERE updatedat < 1000
:
UPDATE t SET data = 'new', updatedat = 1001 WHERE updatedat < 1001
その後サーバ2はサーバ1からの複製ログを取得しますが、サーバ2の値は「古い」でしょうか?もしそうなら、それを避ける方法はありますか?例えば