本文主要讲解“SQL92标准的隔离等级有哪些”,感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“SQL92标准的隔离等级有哪些”!
定义
Read uncommitted (读取未提交内容)
在读取未提交级别,事务中的更改对其他事务可见,即使它们未提交。事务可以读取未提交的数据,这也称为脏读。这个水平会导致很多问题。从性能上看,Read uncommitted并不比其他级别好多少,但是缺少了其他级别的很多好处。除非有非常必要的原因,否则很少在实际应用中使用。
Read committed (读取提交内容)
大多数数据库系统的默认隔离级别是读提交(但MySQL不是)。Read committed满足前面提到的隔离的简单定义:在事务开始时,只能看到提交的事务所做的更改。换句话说,事务从开始到提交所做的任何修改对其他事务都是不可见的。这种级别有时被称为不可重复读取,因为如果您执行同一个查询两次,您可能会得到不同的结果。
Repeatable read (可重复读)
可重复读取解决了脏读的问题。该级别确保在同一事务中多次读取同一记录的结果是一致的。然而,理论上,可重复读取隔离级别仍然不能解决另一个幻影读取问题。所谓神奇读取,就是当一个事务读取某个范围内的记录时,另一个事务在该范围内插入新的记录,当前一个事务再次读取该范围内的记录时,就会产生Phantom行。InnoDB和XtraDB存储引擎通过MVCC(Multivesion Concurrency Control)解决了错觉阅读的问题。
可重复读取是Mysql的默认事务隔离级别,其中InnoDB所有者希望通过使用MVVC获得高并发,并使用一种称为下一个键锁定的策略来避免幻影读取。
Serializable (可串行化)
可序列化是最高的隔离级别。通过强制事务是串行的,它避免了前面提到的错觉读取问题。简单来说,Serializable会为读取的每一行数据添加锁,这可能会导致大量超时和锁征用问题。这种隔离级别在实际中很少使用,只有在非常需要保证数据的一致性,并且没有并发是可以接受的时候才能考虑。
隔离级别
ANSI SQL92 P68-69
级别(隔离级别)脏读取不可重复读取幻影读取未提交读取已提交(已读取已提交内容)x可重复读取(可重复读取)级别更多相关内容,可以去相关渠道查询,关注我们,继续学习!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132523.html