1、读-未提交(read-uncommitted)
事务A在没有完成提交的时候,所有的事务都可以看到当前事务的数据容易导致脏读
2、读-已提交(read-commited)
事务A在没有完成提交前,事务B是无法查看到事务A提交的数据,如果事务A回滚则其他事务不会查询到这条数据。解决了脏读的问题。
3、可重复读(repeatable read)
事务A完成查询是查询的数据快照(历史版本),只有更新,删除,写入才会触发版本的更新。所以不会出现脏读。
4、串行化( serializable)
事务A没有提交执行完毕之前,其他事务只能等待。
事务的最高级别,在每个读的数据行上,加上锁,使之不可能相互冲突,因此,会导致大量的超时现象
脏读:事务A读取到事务B的数据,则认为是脏读。
幻读:读取的时候数据不存在,写入的时候数据存在则认为是幻读。