【发布时间】:2009-06-04 03:00:42
【问题描述】:
按照设计,所有读取都应该来自从属,并在主控上更新,
但考虑以下情况:
table_a中有一列water_mark,
我需要从table_b中读取time_mark列大于
的water_mark列table_a,
如果我从slave读取,则将master中的water_mark列更新为“now()”,
如果slave和master之间有很大的延迟怎么办?
【问题讨论】:
按照设计,所有读取都应该来自从属,并在主控上更新,
但考虑以下情况:
table_a中有一列water_mark,
我需要从table_b中读取time_mark列大于
的water_mark列table_a,
如果我从slave读取,则将master中的water_mark列更新为“now()”,
如果slave和master之间有很大的延迟怎么办?
【问题讨论】:
正如你所说,那是不安全的; SELECT ... FOR UPDATE 和其他“先读后写”事务必须在同一台服务器上进行读写(当然,在 InnoDB 表上;-)。
【讨论】: