隔离级别高好还是低好?

8)隔离级别高好还是低好?

马克-to-win:有 同学问,是隔得狠的好(级别高)还是隔得不狠(级别低)的好?答案:没有哪个绝对好,只有哪个更适合当时的情形。众所周知,序列化是最安全的(幻读都读不 到),但它耗时也是最长的。当你在更新时,我连看都不能看。在很多情况下,是非常没有必要的,太耗时了。其实在很多情况下,用户只需要获得一个大致的数据 就可以了。比如大家一块买票的情况,具体还剩一万张票,还是还剩9999张票,差别不大。他其实就想看一个大概其而已,他知道现在是一万张,而不是十张就 够了。马克-to-win:因为真要是十张的话,就真得看手速了。要是一万张的话,还可以先冲杯咖啡。所以。。。。。。

更多请看:https://blog.youkuaiyun.com/qq_44594371/article/details/103188759

<think>好的,我现在需要回答用户关于Oracle数据库事务隔离级别及其默认设置的问题。首先,我得回忆一下Oracle支持的隔离级别有哪些。根据引用[2]和[5],Oracle支持READ COMMITTED和SERIALIZABLE两种隔离级别。用户提到默认设置,我记得通常数据库会有默认的隔离级别,比如MySQL默认是REPEATABLE READ,但Oracle不同。 接下来,我需要确认Oracle的默认隔离级别是什么。根据引用[2],Oracle不支持脏读,默认情况下应该是READ COMMITTED。引用[4]也提到Oracle不允许脏读,这符合READ COMMITTED的特性。此外,引用[5]说明设置隔离级别的语法,但Oracle可能不支持所有选项,比如READ UNCOMMITTED,因为用户引用中指出Oracle不允许脏读,所以默认不会是READ UNCOMMITTED。 然后,用户的问题需要明确回答默认设置,并解释各个隔离级别的特点。需要确保引用的来源正确,比如引用[3]提到串行化隔离级别下事务只能看到开始时已提交的更改,这和SERIALIZABLE的定义一致。 另外,用户可能想知道如何修改隔离级别,根据引用[5],可以使用SET TRANSACTION命令,但需要指出Oracle只支持两种,所以设置的时候只能选这两种之一。同时,默认情况下,大多数操作在READ COMMITTED下运行,除非显式设置为SERIALIZABLE。 最后,生成相关问题需要考虑用户可能想进一步了解不同隔离级别的区别、如何设置,或者Oracle为什么选择这样的默认设置。确保问题覆盖应用场景、设置方法和与其他数据库的对比,帮助用户深入理解。</think>### Oracle数据库的事务隔离级别及默认设置 Oracle数据库支持两种事务隔离级别:**READ COMMITTED**(读已提交)和**SERIALIZABLE**(可串行化)[^2][^4]。其默认事务隔离级别为**READ COMMITTED**。 #### 1. READ COMMITTED(读已提交) - **特点**:事务只能读取其他事务已提交的数据修改结果,避免脏读(Dirty Read)[^2]。 - **默认行为**:在Oracle中,所有未显式设置隔离级别的操作默认使用此级别。例如: ```sql SELECT * FROM employees; -- 默认在READ COMMITTED下执行 ``` - **适用场景**:适用于需要并发且允许不可重复读(Non-Repeatable Read)或幻读(Phantom Read)的场景[^4]。 #### 2. SERIALIZABLE(可串行化) - **特点**:事务只能看到事务开始时已提交的数据,以及自身修改的数据,完全隔离其他事务的影响,防止脏读、不可重复读和幻读[^3][^4]。 - **设置方法**: ```sql SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; ``` - **适用场景**:适用于需要严格数据一致性的场景,如金融交易。 #### 3. 与其他数据库的差异 - **不支持READ UNCOMMITTED**:Oracle不允许脏读,因此未实现最的`READ UNCOMMITTED`隔离级别- **无REPEATABLE READ**:Oracle通过`SERIALIZABLE`实现了类似`REPEATABLE READ`的效果。 ### 默认设置的实际影响 在默认的`READ COMMITTED`级别下,Oracle通过多版本并发控制(MVCC)机制,确保查询仅访问已提交的数据版本,同时允许并发操作[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mark_to_win

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值