1、Read Uncommitted 读取未提交
查询时可以查询到没有提交的数据,导致脏读
2、Read Committed 读取提交内容
前一次查询和后一次查询中数据间有被增删改,导致查询数据不一致,导致不可重复读,但不能读取到未提交的数据
3、Repeatable Read 可重复读
会导致幻读,并不是说两次读取获取的结果集不同,幻读侧重的方面是某一次的 select 操作得到的结果所表征的数据状态无法支撑后续的业务操作。
更为具体一些:select 某记录是否存在,不存在,准备插入此记录,但执行 insert 时发现此记录已存在,无法插入,此时就发生了幻读。
注意:A事务开启后所读取到的数据均在执行查询那刻开始的数据,后面不会改变。比如A开启事务,B修改并提交,并且A在B提交之前并没有查询,则A查询可以查询到最新的数据,此时B再做第二次提交,则A查询还是B第一次提交的数据。
4、Serializable 可串行化
不同事务等待依次执行