问题 | 原因 | 封锁级别 | 解决方法 | 隔离级别 |
---|---|---|---|---|
丢失修改 | 一个写操作被另一个写操作覆盖,第一个写操作丢失 | 一级封锁协议 | 写操作加X锁,且X锁不共存 | 未提交读 |
读脏数据 | 读操作读到数据后写操作回滚,则读操作读到脏数据 | 二级封锁协议 | 在一级的基础上,读操作加S锁,读完后立刻释放S锁 | 提交读 |
不可重复读 | 读操作读完数据后,写操作修改数据,读操作再次读取数据发现不一致 | 三级封锁协议 | 在二级的基础上,读操作加的S锁不立刻释放,直到事务结束之后再释放 | 可重复读 |
幻读 | 一般是在操作范围数据时,比如求和或者取平均值,有其它事务在区间内插入或者删除 | / | 加间隙锁 | / |
并发一致性
Welcome to my other publishing channels