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