2014/7/27------数据库的隔离性

演示不同隔离级别下的并发问题

1.当把事务的隔离级别设置为read uncommitted ,会引发脏读,不可重复读,虚读

A窗口

start transaction isolation  level  read uncommitted;

start transaction;

select * from account;

=======这个时候发现aaa的账户是1000元,转到B窗口

select * from acount where name==‘aaa‘;

=======发现aaa的账户多了100元,这个时候a窗口读到的数据时b窗口未提交的数据(脏读);

B窗口

start transaction;(有这句话,不写commit语句,数据是不会提交到数据库的)

update account set money=money+100  where name=‘aaa‘;

------不要提交,转到A窗口查询

2..当把事务的隔离级别设置为read committed ,会引发不可重复读,虚读,但可避免脏读;

A窗口

start transaction isolation  level  read committed;

start transaction;

select * from account;

=======这个时候发现aaa的账户是1000元,转到B窗口

select * from acount where name==‘aaa‘;

=======发现aaa的账户多了100元,这个时候a窗口读到了别的事务提交的数据,两次读取到的是不同的数据(不可重复读);

B窗口

start transaction;

update account set money=money+100  where name=‘aaa‘;

commit;

-----转到a窗口

3.当把事务的隔离级别设置为repeatable read(mysql 默认级别) ,会引发虚读,但可避免脏读,不可重复读;

A窗口:

set transaction isolation level repeatable read;

start transaction ;

select * from account;

=======发现有4条记录,转到b窗口

select * from account;

========可能发现有5条记录,这时候发生了a读取到另外一个事务插入的数据(虚读)

B窗口

start transaction;

insert  into acount(name,money) values(‘ggg‘,1000);

commit;

-------转到a窗口

4.当把事务的隔离级别设置为Serializable ,会避免所有的问题;

A窗口:

set transaction isolation level repeatable read;

start transaction ;

select * from account;

=======发现有4条记录,转到b窗口

B窗口

start transaction;

insert  into acount(name,money) values(‘ggg‘,1000);

-------发现不能插入,只能等待a结束事务才能插入

2014/7/27------数据库的隔离性,布布扣,bubuko.com

时间: 2024-10-24 05:49:50

2014/7/27------数据库的隔离性的相关文章

数据库的隔离性与隔离级别以及隔离级别产生的影响

隔离性:个人理解是要保证两个同时发生的事务之间不会感受到对方的存在,不会相互影响.和其他三个原则(原子性.一致性.持久性)是数据操作需要注意的原则.为了满足隔离性,辅助的提出了4个隔离级别,当然约束越严格效率就越低. 隔离级别: 1)read uncommitted 读取未提交的数据,即A事务可以看到其他事务已经加减但是未提交的数据. A事务可以读到B事务已经加减的数据但如果B事务之后失败发生回滚  A事务就读到了被回滚的脏数据 所以网上常叫"脏读" 2)read committed 

谈数据库事务隔离性

写在前面 近两年分布式数据库技术加速发展,而由于金融行业技术生态的限制,周围很多同学对其并没有深入的了解,所以进行高性能.高可靠系统设计时往往缺少这一利器.Ivan希望以系列文章的方式与大家交流探讨,加深我们对分布式数据库的认识.本文是该系列文章的第一篇,主要探讨事务管理中的隔离性,厘清相关概念和关键技术,为后面阐述分布式数据库的事务管理做一个铺垫,姑且算是一篇前传吧. 正文 我们首先从定义出发,事务管理包括原子性.一致性.隔离性和持久性四个方面,即ACID.所有数据库专著都会给出这个四个特性的

【转】涨姿势了,数据库隔离性的几个级别

原文:http://blog.sina.com.cn/s/blog_3fc85e260100msz3.html 每个事务使得数据库从一个一致的永久状态原子地转移到一个新的一致的永久状态,可以说,事务的ACID(the transactional properties of Atomicity, Consistency, Isolation and Durability)属性是数据库事务的灵魂: ·  原子性 事务的原子性首先体现在事务对数据的修改,即要么全都执行,要么全都不执行,例如,从银行账户

数据库事务的ACID(原子性,一致性,隔离性,持久性)四大特性

我从维基百科翻译的.翻译水平有限: 在计算机科学中,ACID(原子性,一致性,隔离性,持久性)是数据库事务的一组属性,旨在即使在发生错误,断电等情况下也可以确保有效性.在数据库的上下文中,这是指一系列数据库操作,它们可以满足ACID属性(并且可以将这些属性视为对数据的单个逻辑操作)称为事务.例如,从一个银行帐户到另一个银行帐户的资金转移,即使涉及多个更改,例如从一个帐户借记而向另一个帐户贷记,也只是一次交易. 1983年, Andreas Reuter和TheoHärder在吉姆·格雷(Jim

[转载] 你真的明白事务的隔离性吗?

原文: http://mp.weixin.qq.com/s?__biz=MjM5MjIxNDA4NA==&mid=400262409&idx=1&sn=827bdcde075ef2f96c82a3f11fa422d4&scene=0&key=b410d3164f5f798ea52ee30c99dcb9c7e079c79659c2ffd9927976ab0093eb3003db7a80ff517fb25e7d1f4d95c602ad&ascene=0&

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

一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例进行分析. [sql] view plaincopyprint? // 创建数据库 create table account( idint primary key not null, namevarchar(40), moneydouble ); // 有两个人开户并存钱 insert into account valu

4.事务提交过程,事务基本概念,Oracle中的事务生命周期,保存点savepoint,数据库的隔离级别

 事务提交过程 事务 基本概念 概念:一个或者多个DML语言组成 特点:要么都成功,要么都失败 事务的隔离性:多个客户端同时操作数据库的时候,要隔离它们的操作, 否则出现:脏读  不可重复读  幻读 Oracle默认情况下,事务是打开的 commit案例: SQL> create table t1(tid int,tname varchar2(20)); 表已创建. SQL> select * from tab; TNAME                          TABTYPE

spring事务的传播机制和隔离性

1.事务的传播机制: 指多个事务方法在相互调用时,事务如何在这些方法中传播. Spring支持7种事务传播行为: PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中.这是最常见的选择. PROPAGATION_SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行. PROPAGATION_MANDATORY 使用当前的事务,如果当前没有事务,就抛出异常. PROPAGATION_REQUIRES_NEW 新建事务,

[原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------