事务与事务隔离级别
oracle事务 事务含义:组成单个逻辑单元的一系列操作。 事务特征: 第一、原子性,即不可分割性; 第二、一致性,保证数据更新前后与业务的一致性; 第三、隔离性,多个事务不相影响; 第四、持久性,事务提交后数据将永久存储杂数据库。 隔离级别 : 1.未提交读(read uncommitted):会出现脏读、不可重复读和幻读。脏读的设计只是为了提供非阻塞读,但是对于oracle来说,默认就提供非阻塞读, 即查询不会受到任何增删改操作的影像,因为oracle提供了undo来存放更新前的数据。 2.提交读(read committed):会出现不可重复读和幻读。oracle的默认事务隔离级别。 3.重复读(repeatable read):会出现幻读。 4.串行化(serializable):隔离级别最高,不允许出现脏读、不可重复读和幻读。即一个事务执行结束了另一个事务才能执行。当然并发性也就最差。 除了这四种,oracle还提供read only隔离级别,即只支持读,在该级别中,该事务只能看到事务开始那一刻提交的修改。 脏读、不可重复读、幻读含义 脏读:一个事务可以读物另一个事务未提交的数据。 不可重复读:在一个事务中不同时间段查询出现不同的结果,可能被更新可能被删除。 幻读:在一个事务中不同时间段查询,记录数不同。与不可重复读的区别是:在幻读中,已经读取的数据不会改变