四种事务隔离级别

事务隔离级别


(1)Read uncommitted 未提交读(RU)


        最弱的隔离级别,事务中的修改即使没有提交,对其他事务也都是可见的。(即脏读)


(2)Read committed 提交读  不可重复读(RC)


        大多数数据库系统的默认隔离级别。


        解决了脏读的问题,一个事务从开始直到提交之前,所做的任何修改对其他事务都是不可见的。


        一个事务两次执行同样的查询,可能会得到不一样的结果。


(3)Repeatable read 可重复读(RR)


        mysql默认隔离级别。


        解决了脏读的问题。该级别保证了在同一个事务中多次读取同样记录的结果是一致的。


      该级无法解决幻读的问题,幻读是当某个事务在读取某个范围内的记录时,另一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻读。


        innodb和xtradb存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)解决了幻读的问题。


(4)Serializable 可串行化


        该级是最高的级别,通过强制事务串行执行,避免了幻读的问题,该级会在读取的每一行数据上都加锁,所以可能导致大量的超时和锁争用的问题

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容