事务与事务隔离级别

左心房为你撑大大i 提交于 2020-03-08 05:28:49

oracle事务
事务含义:组成单个逻辑单元的一系列操作。
事务特征:
第一、原子性,即不可分割性;
第二、一致性,保证数据更新前后与业务的一致性;
第三、隔离性,多个事务不相影响;
第四、持久性,事务提交后数据将永久存储杂数据库。

隔离级别

1.未提交读(read uncommitted):会出现脏读、不可重复读和幻读。脏读的设计只是为了提供非阻塞读,但是对于oracle来说,默认就提供非阻塞读,

                                             即查询不会受到任何增删改操作的影像,因为oracle提供了undo来存放更新前的数据。

2.提交读(read committed):会出现不可重复读和幻读。oracle的默认事务隔离级别。

3.重复读(repeatable read):会出现幻读。

4.串行化(serializable):隔离级别最高,不允许出现脏读、不可重复读和幻读。即一个事务执行结束了另一个事务才能执行。当然并发性也就最差。

除了这四种,oracle还提供read only隔离级别,即只支持读,在该级别中,该事务只能看到事务开始那一刻提交的修改。

脏读、不可重复读、幻读含义

脏读:一个事务可以读物另一个事务未提交的数据。

不可重复读:在一个事务中不同时间段查询出现不同的结果,可能被更新可能被删除。

幻读:在一个事务中不同时间段查询,记录数不同。与不可重复读的区别是:在幻读中,已经读取的数据不会改变,只是与以前相比,会有更多的数据满足查询条件。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!