有关事务的:封锁协议,锁类型,脏读、不可重复读和虚读等等

封锁协议有三级。
  一级:当某一事务在修改数据时加独占锁( exclusive locks, write locks),直到事务结束(提交或者回滚)释放。因为不能同时对某一数据进行修改,所以一级封锁协议可防止丢失更新。但是读取数据时没有加任何锁,它还是可以读取加了独占锁的数据,所以不能防止脏读不可重复读。
  二级:在一级封锁基础上事务读数据时加共享锁( shared locks , read locks), 读取之后释放(共享锁范围是每次读取)。二级封锁协议可防止丢失更新,脏读。不能防止不可重复读。

  三级:在一级封锁基础上事务读数据时加共享锁,直到事务结束释放(共享锁范围是整个事务)。三级封锁协议可防止丢失更新,脏读,不可重复读。

 

ANSI SQL isolation levels

Isolation level             Dirty reads possible   Nonrepeatablereads possible   Phantom readspossible   Lockingreads

READUNCOMMITTED        Yes                                   Yes                                 Yes                             No

READ COMMITTED(1)        No                                   Yes                                 Yes                              No

REPEATABLE READ(2)       No                                    No                                 Yes                              No

SERIALIZABLE(3)              No                                   No                                  No                              Yes 

 REPEATABLE READ is MySQL’s default transaction isolation level. -摘自《High Performance MySQL Second Edition》

转载于:https://www.cnblogs.com/isql/archive/2009/12/15/1624629.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值