首页 > 数据库 > mysql教程 > 事务的隔离级别

事务的隔离级别

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-07 16:05:07
原创
1224 人浏览过

数据库系统有四个隔离级别,分别为未提交读、已提交读、可重复读、串行化 大多数数据库的默认级别就是Read committed,比如Sql Server , Oracle。Mysql的默认隔离级别就是Repeatable read。 READ UNCOMMITTED(未提交读) 事务A执行的操作未提交,但是事务B还

数据库系统有四个隔离级别,分别为未提交读、已提交读、可重复读、串行化

大多数数据库的默认级别就是Read committed,比如Sql Server , Oracle。Mysql的默认隔离级别就是Repeatable read。

READ UNCOMMITTED(未提交读)

事务A执行的操作未提交,但是事务B还是能看到修改,这时会产生脏读的情况。

READ COMMITTED(提交读)

事务A先是读取了数据,这时事务B更改了同一数据,并已提交,这时事务A再次读取这个数据时就会发现两次数据不一致,这就产生不可重复读的现象。

REPEATABLE READ(可重复读)

当事务A读取记录时,会对此记录添加一个共享锁,即事务B不能在事务A结束前对记录进行修改。

可能产生的问题:当执行范围查询时,可能会产生幻读。如事务A先查询一个消费总量,接着事务B增加一条消费记录,这时事务A再次查询消费总量时,就会发现两次查询不一致

SERIALIZABLE(序列化)

添加范围锁(比如表锁,页锁等、),直到transaction A结束。以此阻止其它transaction B对此范围内的insert,update等操作。幻读,脏读,不可重复读等问题都不会发生。

 

脏读

不可重复读

幻读

Read uncommitted

Read committed

×

Repeatable read

×

×

Serializable

×

×

×


相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
php中try catch 和 mysql中的事务的关系
来自于 1970-01-01 08:00:00
0
0
0
java - spring事务不回滚
来自于 1970-01-01 08:00:00
0
0
0
MySQL 什么需求下(情况下)才使用事务?
来自于 1970-01-01 08:00:00
0
0
0
java - 分布式事务的处理方案
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板