美文网首页
每天学一点之oracle的隔离级别

每天学一点之oracle的隔离级别

作者: 宜宣_6c9f | 来源:发表于2020-12-21 22:38 被阅读0次
隔离级别定义了事务与事务之间的隔离程度。
隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。
通过一些现象,可以反映出隔离级别的效果。这些现象有:
更新丢失(lost update):当系统允许两个事务同时更新同一数据是,发生更新丢失。
脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读。
非重复读(nonrepeatable read):同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。
幻像(phantom read):同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻像读。
数据库事务的隔离级别有4个,由低到高依次为Readuncommitted,Readcommitted、Repeatableread、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。

当隔离级别设置为Read committed时,避免了脏读,但是可能会造成不可重复读。
当隔离级别设置为Repeatable read时,避免了不可重复读,但还有可能出现幻读。
Serializable是最高的事务隔离级别,同时代价也花费最高,性能很低,一般很少使用,在该级别下,事务顺序执行,不仅可以避免脏读、不可重复读,还避免了幻像读。

相关文章

网友评论

      本文标题:每天学一点之oracle的隔离级别

      本文链接:https://www.haomeiwen.com/subject/sczdnktx.html