insert into foo values(CURRENT_TIMESTAMP)
据我所知,slave会读取SQL语句并执行它,因此,如果复制滞后,可能会导致同一行的差异。是对还是错?
我该如何避免这种情况?
谢谢。
答案 0 :(得分:5)
您的方法在语句级复制中非常安全。 TIMESTAMP被写入二进制日志,因此即使从站落后,CURRENT_TIMESTAMP
的值也将在主站和从站之间保持一致。出于同样的原因,您也可以安全地使用NOW()
功能。
要避免的函数是SYSDATE()
,它不会使用二进制日志中的TIMESTAMP,因此从属的值将表示语句在从属服务器上运行的时间,而不是在语句在主服务器上运行时。