1、Read uncommitted
读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。
问题:出现脏读。另一个事务回滚了,那读的数据是脏数据。
2、Read committed
读提交,顾名思义,就是一个事务要等另一个事务提交后才能读取数据。
问题:不可重复读。第一次读与第二次读之间,有别的事务提交更新了数据,这样两次读的结果不一致。
3、Repeatable read
重复读,就是一个事务开启时,不再允许别的事务执行修改操作。
问题:幻读。第一次读与第二次读之间,有别的事务提交新增了数据,这样两次读的结果不一致。
4、Serializable 序列化
事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。
大多数数据库默认的事务隔离级别是Read committed,比如Sql Server , Oracle。
Mysql的默认隔离级别是Repeatable read