事务的隔离级别有
-
4种
read uncommitted 读未提交 -- RU read committed 读已提交 -- RC repeatable read 可重复读 --RR serializable 可串行化
-
读未提交
特点:事务可以读取到其他事务未提交/未回滚前的数据,会产生脏读 什么是脏读:由于事务读取到了其他事务未提交/未回滚前的数据,导致读取的数据最终是不存在的,这个现象就叫做脏读.
-
读已提交
特点:事务只能读取到其他事务提交/回滚后的数据,解决了脏读问题,但是会产生不可重复读问题. 什么是不可重复读:在事务A执行期间,其他事务对事务A访问的数据进行修改操作,导致事务A中前后两次读取相同的数据的结果是不一致的.这个现象就叫做不可重复读
-
可重复读
解决了不可重复读问题,产生了新的问题 -- 幻读 什么是幻读: 在事务A访问数据期间,其他事务执行了插入操作,导致事务A前后两次读取到的数据总量不一致,这个现象就叫做幻读.
-
可串行化
解决了幻读问题,实现了多事务并发执行同步效果,所以这个隔离级别的并发执行效率是最低下的
-
四种隔离级别由低到高
读未提交-->读已提交-->可重复读-->可串行化
-
四种隔离级别可能产生的问题
脏读 不可重复读 幻读 读未提交 √ √ √ 读已提交 × √ √ 可重复读 × × √ 可串行化 × × ×