1.读未提交数据(read uncommited)
各个会话(Session),可读取,未被提交的数据(没持久化,可以回滚,事务场景下算无效数据)。通常基本不会被使用,跟使用事务的场景不匹配。
2.读已提交的数据(read commited)
各个会话(Session),只能读取,已被提交的数据(已经持久化,不可以回滚,确实为有效数据)。通常基本都是用这个级别,跟事务场景基本匹配,若有执行顺序要求,需要自定义锁的实现。
3.可重复读(repeatable read)
各个会话(Session)的读取操作,在本次会话内存在缓存,若本次会话不执行UPDATE,INSERT操作,哪怕其他会话已经更改了读结果,缓存也不会改变。
鸡肋,不知道在事务环境下,这个模式有毛线用。
4.串行执行(serializable)
各个会话(Session)的操作,排队执行。接近这个效果,可以认为是这样。真实实现略有差异。功能性很强,性能很差,通常不会使用。除非使用场景就一个会话,不然实在想不到为啥用这个模式。