参考文章:

1.oracle数据库事务隔离级别

2.oracle数据库事务隔离级别介绍

3.数据库事务4种隔离级别及7种传播行为

上面两篇文章有详细解释,其中第二篇还有形象的事务图

要弄清楚这个问题,首先要知道什么是隔离级别、隔离级别的作用是什么。

讨论隔离级别的场景,主要是在  多个事务并发  的情况下

隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度

作用,即要解决的问题:
1.脏读             (级别1可能会出现,级别2解决)

2.不可重复读   (级别2可能会出现,级别3解决)

3.幻想读          (级别3可能会出现,级别4解决)

oracle 的事务隔离级别:其他数据库的隔离级别应该也是这些

级别1——读未提交(read uncommitted)。事务A读到了事务B  未提交 的数据,可能出现 脏读,如果B回滚了事务,就会出现脏读
级别2——读提交(read committed)。事务A事先读取了数据,事务B紧接了更新了数据,并提交了事务,而事务A再次读取该数据时,数据已经发生了改变。可能出现 不可重复读 

别3——重复读(repeatable read)。   感觉这个不好理解,可能会出现 幻读
级别4——串行化(serializable)。  最高级别的隔离级别。通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,是在每个读的数据行上加共享锁。可能导致大量超时现象和锁竞争 

 

oracle支持 2种 事务隔离级别:读提交、串行化    默认:读提交
mysql支持 4种 事务隔离级别。默认:可重复读

 

分别解决的问题具体见上面两篇文章

如何 查看/修改  oracle的事务隔离级别:待完善

 

posted on 2022-02-22 17:29  水语者9  阅读(1607)  评论(0编辑  收藏  举报