文档章节

四种并发异常,四种相应的隔离级别--数据库事务的复习

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 378
阅读 4
收藏 0
点赞 0
评论 0

      印象中这是在博客里第三次重提数据库事务的隔离级别了。这一块内容有一点绕,当时弄明白了,过一段时间又会忘记。我觉得掌握数据库事务隔离级别的窍门在于:罗列出事务在并发时会发生哪些异常情况,什么样的隔离级别会杜绝这种异常情况的发生。下面就按照这个思路把数据库事务隔离级别再复习一遍。

      第一种可能出现的异常情况:丢失更新(Lost Update)

数据库事务隔离级别:Read Uncommitted可以避免此类异常

      第二种可能出现的异常情况:脏读(Dirty Read)


 

数据库事务隔离级别:Read Committed可以避免此类异常

      第三种可能出现的异常情况:不可重复读(Unrepeatable Read )


数据库事务隔离级别:Reaptalble Read可以避免此类异常

      第四种可能出现的异常情况:幻象读(Phantom Read)


数据库事务隔离级别:Serializable可以避免此类异常

 

下表是各隔离级别对各种异常的控制能力


LU丢失更新 DR脏读 NRR非重复读 SLU二类丢失更新 PR幻像读
未提交读 RU Y Y Y Y Y
提交读 RC N N Y Y Y
可重复读 RR N N N N Y
串行读 S N N N N Y

© 著作权归作者所有

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
数据库的并发控制

并发控制机制试图在多个事务中交叉(同时)执行Read和Write操作,并使得交叉执行的结果与串行调度执行的结果一样。这个交叉执行给人的感觉是事务在并行执行。并发控制非常重要,因为事务在共...

柳哥 ⋅ 2014/06/29 ⋅ 0

事务四大特征:原子性,一致性,隔离性和持久性(ACID)

一、基本概念 事务的原子性(Atomicity) 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据改操作要全部执行,要么全部不执行。这种特性称为原子性。 事务的原...

Idea ⋅ 01/09 ⋅ 0

数据库事务

事务的四个特性 (ACID) ,分别是原子性( Atomicity), 一致性( Consistency), 隔离性( Isolation), 持久性( Durability)。一致性是事务的目的,原子性,隔离性,持久性是一致性的必要条件...

netpeak ⋅ 2017/06/16 ⋅ 0

浅谈关系型数据库事务的隔离级别

我们知道在关系型数据库里面事务有四个属性: 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。 一致性(Consistency):事务应确保...

砚羲 ⋅ 2015/02/11 ⋅ 0

数据库事务的ACID及三种并发问题

数据库中事务的四大特性 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: 1、 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,...

zjg23 ⋅ 2016/09/30 ⋅ 0

事务隔离级别和脏读的快速入门(转载)

关键要点 仅从ACID或非ACID角度考虑问题是不够的,你应知道你的数据库支持何种事务隔离级别。一些数据库宣称自己具有“最终一致性”,但却可能对重复查询返回不一致的结果。相比于你所寻求的...

treenewtreenew ⋅ 2016/11/16 ⋅ 0

数据库隔离级别以及悲观锁和乐观锁

数据库隔离级别 目的:保证事务并发读取数据的正确性 数据库事务隔离级别 (1)Read uncommitted(读未提交数据):允许事务读取未被其他事务提交的变更数据,会出现脏读、不可重复读和虚读。...

JackMo2015 ⋅ 03/06 ⋅ 0

PHP使用数据库的并发问题

原载于我的博客 http://starlight36.com/post/php-db-concurrency 在并行系统中并发问题永远不可忽视。尽管PHP语言原生没有提供多线程机制,那并不意味着所有的操作都是线程安全的。尤其是在...

烫烫烫烫烫烫 ⋅ 2014/11/15 ⋅ 7

由数据库的隔离级别到spring对数据库的事物控制

一、关于事务的隔离级别: sql定义四种隔离级别(由低到高) 1 Read Uncommitted 读取未提交内容 2 Read Committed 读取提交内容 3 Repeatable Read 可重读 4 Serializable 可串行化 二、不同...

dengk ⋅ 2016/03/23 ⋅ 0

MySQL事务隔离级别详解

SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 Read Uncommitted(...

阿泽Aze ⋅ 2017/11/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Boot整合模板引擎thymeleaf

项目结构 引入依赖pom.xml <!-- 引入 thymeleaf 模板依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId......

yysue ⋅ 12分钟前 ⋅ 0

ConstraintLayout使用解析

AndroidStudio3.0创建Project默认的布局就是ConstraintLayout。 AndroidStudio3.0前的可以自己修改,使用ConstraintLayout。 为了要使用ConstraintLayout,我们需要在app/build.gradle文件中...

_OUTMAN_ ⋅ 24分钟前 ⋅ 0

OSChina 周三乱弹 —— 这样的女人私生活太混乱了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 胖达panda :你经历过体验到人生的大起大落吗?我一朋友在10秒内体验了,哈哈。@小小编辑 请点一首《almost lover》送给他。 《almost love...

小小编辑 ⋅ 57分钟前 ⋅ 9

自己动手写一个单链表

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对...

公众号_好好学java ⋅ 今天 ⋅ 0

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部