Open zhanggao opened 4 years ago
每条记录在更新的时候都会记录一个回滚日志(undo log),保存了数据更改之前的一个版本。 不同的事务有不同的read view,当事务A重复读一个数据时,就会将数据回滚到read view A,可重复读就算这么实现的。
幻读 脏读 不可重复读
间隙锁解决了幻读问题
Spring 事务传导机制 REQUIRED:默认,如果上下文存在事务则加入,不存在则新增。 SUPPORTS:如果上下文存在事务则加入事务,没有的话就不用在事务中执行,应用较少。 MANDATORY:强制调用的上下文中必须有事务,否则报错。 REQUIRES_NEW:新建一个子事务,将父事务挂起 NOT_SUPPORTED:如果上下文中存在事务,则将事务挂起,没有的话正常执行,通常用于无关紧要的逻辑,避免事务过长。 NEVER:要求上下文中必须不存在事务。 NESTED:嵌套事务。上下文中存在事务,则嵌套执行,不存在则新建事务。