缺点: 1.会产生脏读 2.只适用与select查询语句优点: 1.有些文件说,加了WITH (NOLOCK)的SQL查询效率可以增加33%。 2.可以用于inner join 语句脏读: 一个用户对一个资源做了修改,此时另外一个用户正好读取了这条被修改的记录,然后,第一个用户放弃修改,数据...
分类:
其他好文 时间:
2014-07-22 22:53:54
阅读次数:
196
数据库事务常见的三种现象:1脏读(dirty read):未提交读。(A修改年龄为20,B读出20后,A回滚为18。) 出现场景:大多数数据库默认的级别为提交读(SQLServer,Orcal),所以除非设置隔离级别为Readuncommitted,否则不会出现。 解决方案:SET TRANSACT...
分类:
其他好文 时间:
2014-07-19 00:31:01
阅读次数:
203
1.ACID:原子性、一致性、隔离性、持久性2.事务:显示,隐士事物3.不一致性: 更新丢失(覆盖了)、脏读(读取到了未提交的数据)、不可重复读(两次读取的结果不一致)4. 四个隔离级别:--主要保证查询时最新的 READUNCOMMITTED --不申请X锁与S锁 READCOMMITTE...
分类:
其他好文 时间:
2014-07-16 08:43:43
阅读次数:
252
事务的特征:ACID
Atomicity:原子性
Consistency:一致性
Isolation:隔离性
Duration:持久性
在SQL标准中定义了事务的四种隔离级别:
1,read uncommitted 未提交读
事务中的修改,即使没有提交,对其他事务也都是可见的。即事务可以读取未提交的数据,即会产生脏读。
2,read committed 提交读 ...
分类:
数据库 时间:
2014-07-10 22:29:41
阅读次数:
319
数据库软件需要解决的主要问题为“数据一致性”和“访问并发性”之间的矛盾,在理论上人们总结出保证数据一致性需要解决的几种不确定性情况,并以此为基础提出了数据库事务的几种隔离级别。
首先,来看一下,解决数据一致性的过程中,方法会发生的几种不确定情况。
脏读:
脏读又称无效数据的读出,是指在数据库访问的过程中,事务T1对某一值进行了修改,在没有提交之前,事务T2可以读取到事务T1的修改,由于T1事...
分类:
数据库 时间:
2014-07-08 18:56:54
阅读次数:
245
隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read)读未提交(Read uncommitted) 可能 可能 可能读已提交(Read committed...
分类:
数据库 时间:
2014-07-05 21:18:34
阅读次数:
272
1.数据库并发产生的问题。(这里所说的事务就是普通意义的流程,跟数据库的事务不要关联起来) 1)脏读。一个事读取了一个仍然在另一个未提交事务的范畴内的数据。read committed级别可以避免。 2)不可重复读。一个事务中两次相同的查询却返回了不同的数据。这是因为一个事务在读,然后另一个事务修改...
分类:
数据库 时间:
2014-07-03 00:55:34
阅读次数:
322
一、多个事务并发运行时的并发问题: 总结为第一类丢失更新、脏读、虚读、不可重复读、第二类丢失更新。 1、第一类丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖。 2、脏读:一个事务读到另一个事务未提交的更新数据。 3、虚读(幻读):一个事务读到另一个事务已提交的新插入的数据。 4、...
分类:
系统相关 时间:
2014-06-19 08:51:00
阅读次数:
321
在READ
UNCOMMITTED事务隔离级别下或使用WITH(NOLOCK)来查询数据时,会出现脏读情况,因此对于一些比较"关键"的业务,会要求不能使用WITH(NOLOCK)或允许在READ
UNCOMMITTED事务隔离级别下,于是我们使用默认的READ COMMITTED隔离级别来访问数据,...
分类:
其他好文 时间:
2014-06-10 00:27:57
阅读次数:
264
MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。
未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)。
提交读(READ COMMITTED)。本事务读取到的是最新的数据(其他事务提交后的)。问题是,在同一个事务里,前后两次相同的SELECT会读到不同的...
分类:
数据库 时间:
2014-06-05 00:12:14
阅读次数:
449