博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

select update delete

Posted on 2010-10-11 19:01  qianyz  阅读(494)  评论(2编辑  收藏  举报

在RC级别下

select ,对满足条件的数据都加S锁,读取一条释放一个锁

update,先发select命令来找对应的数据,然后都加X锁,知道事务结束X锁才释放

delete 先发select命令来找对应的数据,然后都加X锁,知道事务结束X锁才释放

 insert 先把数据插入,然后在检查数据完整一致性,如果有问题就回滚

select <----  重复度矛盾  ------>update<------- 丢失修改---------->update

 

select<--------- 幻想---------> insert,delete 

 

RC下

   select会出现不可重复读和幻想,不会出现读脏数据

   delete,insert  会出现幻想

   update会出现不可重复读

 

 

锁的兼容性:

 

s---->s,u  

  ---//-->x

 

U---->s(在RC隔离下才兼容,因为读完数据后会立即释放S锁,而不是长时间占有)

   ----//--->U.X

 

X--//-->X.S,U