数据库弱一致性四个隔离级别

原创 2011年01月18日 00:19:00

SQL-92标准中定义了四个隔离级别,这四个隔离级别在以前版本的SQL Server中即受到支持:

READ UNCOMMITTED是限制性最弱的隔离级别,因为该级别忽略其他事务放置的锁。使用READ UNCOMMITTED级别执行的事务,可以读取尚未由其他事务提交的修改后的数据值;这些行为称为“脏”读。比如,事务1修改一行,事务2在事务1提交之前读取了这一行。如果事务1回滚,事务2就读取了一行没有提交的数据,这样的数据我们认为是不存在的。

READ COMMITTED(Nonrepeatable reads)SQL Server默认的隔离级别。该级别通过指定语句不能读取其他事务已修改但是尚未提交的数据值,禁止执行脏读。在当前事务中的各个语句执行之间,其他事务仍可以修改、插入或删除数据,从而产生无法重复的读操作,或“影子”数据。比如,事务1读取了一行,事务2修改或者删除这一行并且提交。如果事务1想再一次读取这一行,它将获得修改后的数据或者发现这一样已经被删除,因此事务的第二次读取结果与第一次读取结果不同,因此也叫不可重复读。

REPEATABLE READ是比READ COMMITTED限制性更强的隔离级别。该级别包括READ COMMITTED,并且另外指定了在当前事务提交之前,其他任何事务均不可以修改或删除当前事务已读取的数据。并发性低于 READ COMMITTED,因为已读数据的共享锁在整个事务期间持有,而不是在每个语句结束时释放。比如,事务1读取了一行,事务2想修改或者删除这一行并且提交,但是因为事务1尚未提交,数据行中有事务1的锁,事务2无法进行更新操作,因此事务2阻塞并且回滚。如果这时候事务1想再一次读取这一行,它读取结果与第一次读取结果相同,因此叫可重复读。

SERIALIZABLE 是限制性最强的隔离级别,因为该级别锁定整个范围的键,并一直持有锁,直到事务完成。该级别包括REPEATABLE READ,并增加了在事务完成之前,其他事务不能向事务已读取的范围插入新行的限制。比如,事务1读取了一系列满足搜索条件的行。事务2在执行SQL statement产生一行或者多行满足事务1搜索条件的行时会冲突,则事务2回滚。这时事务1再次读取了一系列满足相同搜索条件的行,第二次读取的结果和第一次读取的结果相同。

数据库事务四种隔离级别

定义: 在数据库操作中,为了有效保证并发读取数据的正确性,提出的事务隔离级别。 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted(未授权读取、读未提交)、Read com...
  • tolcf
  • tolcf
  • 2015年10月20日 22:40
  • 19755

数据库弱一致性四个隔离级别---MySQL的默认隔离级别就是Repeatable,Serializable是最高的事务隔离级别,但代价也花费最高,性能很低,很少使用.

SQL-92标准中定义了四个隔离级别,这四个隔离级别在以前版本的SQL Server中即受到支持: 本文系转载,原文地址:http://singo107.iteye.com/blog/1175084...
  • hzw05103020
  • hzw05103020
  • 2016年05月01日 01:05
  • 1589

数据库事务的四个隔离级别浅析

数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、...
  • IWantToHitRen
  • IWantToHitRen
  • 2015年09月24日 22:51
  • 2072

分布式系统(四)——弱一致性模型

本文主要讲述分布式系统中的弱一致性模型,本文中的全部内容全部来自于清华大学分布式课程网站,网站地址http://thu-cmu.cs.tsinghua.edu.cn/curriculum/dscour...
  • dzs1993
  • dzs1993
  • 2016年07月04日 16:02
  • 1314

CAP原理与最终一致性 强一致性 弱一致性

介绍内容转载自:http://www.blogjava.net/hello-yun/archive/2012/04/27/376744.html  CAP原理中,有三个要素: 一致性(...
  • c289054531
  • c289054531
  • 2013年11月11日 13:54
  • 4524

数据库的四种隔离级别

目录数据库的四种隔离级别 前言 简介 实验 0准备工作 1读取未提交 2读取已提交 3可重复读 4串行化 没想到最后一个级别出了乱子没按剧本来学海无涯数据库的四种隔离级别前言首先要推荐这个数据库的文章...
  • waltonhuang
  • waltonhuang
  • 2016年07月08日 21:56
  • 7967

CPU 弱一致性

http://www.tektalk.org/2011/07/07/cache%e4%b8%80%e8%87%b4%e6%80%a7%e4%b8%8e2%e7%a7%8d%e5%9f%ba%e6%9c...
  • hintonic
  • hintonic
  • 2012年06月18日 17:49
  • 3265

ConcurrentHashMap是弱一致性分析

本文将用到Java内存模型的happens-before偏序关系(下文将简称为hb)以及ConcurrentHashMap的底层模型相关的知识。happens-before相关内容参见:JLS §17...
  • wzq6578702
  • wzq6578702
  • 2016年03月16日 21:51
  • 1652

SQL事务的四种隔离级别

在SQL标准中定义了四种隔离级别,每一种级别都规定了一个事务中所做的修改,哪些是在事务内和事务间可见的,哪些是不可见的。较低级别的隔离通常可以执行更高的并发,系统的开销也更低。 未提交读(Rea...
  • kai161
  • kai161
  • 2014年09月22日 19:16
  • 9696

最终一致性的理解

一致性问题的历史发展        完美的一致性模型是:当做了一个更新操作,所有的观察者将看到这个更新。        在70年代后期的数据库系统,这个完美的一致性模型第一次被认为很难达到。  ...
  • jeff_fangji
  • jeff_fangji
  • 2014年11月09日 23:34
  • 6149
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库弱一致性四个隔离级别
举报原因:
原因补充:

(最多只允许输入30个字)