事务隔离级别

2019-06-24  本文已影响0人  Devil兵

事务隔离级别

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

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

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

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

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

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

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

        mysql默认隔离级别。

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

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

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

(4)Serializable 可串行化

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

-

上一篇 下一篇

猜你喜欢

热点阅读