在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