数据库基础问题汇总 1.并发事务之间相互影响的类型? 脏读:一个事务读取了另一个事务尚未提交的数据。 不可重复读:同一个事物中前后两次相同的查询,结果不一样。 幻读:一个事务中多次进行相同范围的查询,结果不一样。 eg1 幻读:事务T1第一次查询select count(*) from people ...
分类:
数据库 时间:
2016-09-09 16:43:36
阅读次数:
195
转载自:http://singo107.iteye.com/blog/1175084 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 ...
分类:
数据库 时间:
2016-09-05 13:45:11
阅读次数:
226
对于对象的同步和异步的方法,我们在设计自己的程序的时候,一定要考虑问题的整体,不然就会出现数据不一致的情况,很经典的错误就是脏读。 a、getValue方法去掉synchronized关键字,控制台打印信息:getValue方法得到:username = z3 , password = 123set ...
分类:
其他好文 时间:
2016-09-04 13:00:07
阅读次数:
111
在SQL Server中,需要对数据操作进行先SELECT 之后UPDATE,对于这样的操作,如果出现高并发,可能导致脏读情况的发生。不能保证数据的同步。 解决方案是在事物中对表进行加更新锁: 事务一: 事务二: ...
分类:
数据库 时间:
2016-09-02 13:22:24
阅读次数:
169
四种数据库隔离级别如下所示: 1.READ-UNCOMMITTED(读取未提交内容) 由于在该隔离级别下即使事务未提交所做的修改也会对其他事务产生影响。所以该级别会出现数据脏读的发生。脏读:一个事务读取了另一个未提交的并行事务写的数据。 举例:老板给员工发工资,老板开启事务,然后想员工的账户转钱10 ...
分类:
数据库 时间:
2016-08-22 20:05:26
阅读次数:
203
脏读 一个常见的概念。在多线程中,难免会出现在多个线程中对同一个对象的实例变量进行并发访问的情况,如果不做正确的同步处理,那么产生的后果就是"脏读",也就是取到的数据其实是被更改过的。 按照正常来看应该打印"a num = 100"和"b num = 200"才对,现在却打印了"b num = 20 ...
分类:
编程语言 时间:
2016-08-21 16:34:56
阅读次数:
157
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。 √: 可能出现 ×: 不会出现 脏读 不可重复读 幻读 Read uncomm ...
分类:
数据库 时间:
2016-08-14 22:03:14
阅读次数:
177
脏读 dirty reads:当事务读取还未被提交的数据时,就会发生这种事件。举例来说:Transaction 1修改了一行数据,然后Transaction 2在Transaction 1还未提交修改操作之前读取了被修改的行。如果Transaction 1回滚了修改操作,那么Transaction ...
分类:
其他好文 时间:
2016-08-07 13:49:10
阅读次数:
137
先解释一下:a:脏读取:一个事务读取了另外一个并行事务未提交的数据b:不可重复读取:一个事务再次读取之前的数据时得到的数据不一致,被另外一个事务修改c:虚读:一个事务重新执行一个查询,返回的记录包含了其他事务提交的新记录 设定事务的隔离级别:con.setTransactionIsolation(C ...
分类:
数据库 时间:
2016-08-04 10:18:04
阅读次数:
196
概念介绍 开发人员喜欢在SQL脚本中使用WITH(NOLOCK), WITH(NOLOCK)其实是表提示(table_hint)中的一种。它等同于 READUNCOMMITTED 。 具体的功能作用如下所示(摘自MSDN): 1: 指定允许脏读。不发布共享锁来阻止其他事务修改当前事务读取的数据,其他 ...
分类:
数据库 时间:
2016-08-02 18:54:03
阅读次数:
256