简单易懂理解事务的隔离级别
在讲事务的隔离级别,我们先得回忆一下事务的隔离性
事务的隔离性是在当多个用户并发访问数据库时,比如说操作同一张表时,数据库为每一个用户开启事务,不能被其他事务的操作所干扰,多个并发事务之间需要相互隔离。即要达到这样的一种效果:对于任意的两个并发事务T1和T2,在事务T1看来,T2要么在T1开始之前结束,要么就是在T1结束之后才开始,这样每个事务都感觉不到有其他的事务在并发的执行。
一共分为四个隔离级别:
读未提交(Read Uncommitted):最低的隔离级别,允许其他事务看到没有提交的数据,会导致脏读。
读已提交(Read Committed):被读取的数据可以被其他事务修改,这样可能导致不可重复读。也就是说,事务读取的时候获取读锁,但是在读完之后立刻释放(不需要等事务结束),而写锁则是事务提交后才释放,释放读锁之后,就可能被其他的事务修改数据。对于我们常用的数据库(Mysql,Sql Server,Oracle)的默认隔离等级就是该等级。
可重复读(Repeatable Read):也就是在开始读取数据时(事务开启时),不允许修改操作。
序列化(Serializable): 是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。
以上的隔离级别从上到下依次增强。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341