美文网首页
关于MySql中的事物隔离级别

关于MySql中的事物隔离级别

作者: capo | 来源:发表于2017-03-24 10:40 被阅读71次

    read uncommitted  (未提交读) 级别 事务中的修改,即使没有提交,对其他事物也都是可见的。事务可以读取未提交的数据,这也被称为脏读。

    read committed( 提交读) 大多数数据库默认的隔离级别都是 read committed(但是MySql不是):一个事务开始时,只能看见已经提交的事务所做的修改. 一个事务从开始提到提交之前,所做的任何修改对其它的事务都是不可见的

    repeatable read(可重复读) 该级别保证了在同一个事务中多次读取同样记录的结果是一致的。

    但是理论上可重复读还是无法解决另外一个幻读问题,指的是当某个事务在读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录,当之前的实物再次读取该范围的记录时,会产生幻行.

    serializable(可串行化)  是最高的隔离级别。它通过强制事务串行执行,避免了前面说的幻读问题.

    简单来说,可串行化会在读取的每一行数据上加上锁,所以可能导致大量的超时和锁争用的问题。

    实际应用中也很少用到这个隔离级别,只有在非常需要确保数据的一致性且可以接受没有并发的情况下,才考虑采用该级别。

    相关文章

      网友评论

          本文标题:关于MySql中的事物隔离级别

          本文链接:https://www.haomeiwen.com/subject/kuwxottx.html