start transaction;
update a set b=1 where a=1;
update b set c=1 where a=1;
commit;
二进制日志会按顺序记录a,b更新,但是什么时候b的更新会刷新到日志之前?
如何反复出现?
答案 0 :(得分:0)
如果您使用的是InnoDB之类的事务引擎,那么可以保证同时应用这两个更新,或者两者都不应用。
如果您使用的是MyISAM等引擎,那么事务可能会处于部分完成状态,但即使使用二进制日志,它们也会按照初始连接中的顺序完成。< / p>
在使用相同的连接(/ transaction)进行A之前,不存在B更新的情况。如果您从2个不同的连接并行执行这些查询,则它们可以按任意顺序进行。