7并发控制

wumingliang / 2023-09-04 / 原文

事务的ACID特性

事务

A原子性:操作要么全部成功,要么全部失败回滚

C一致性:一个一致性状态变换到另一个一致性状态:扣500,另一个得500

I隔离性:独立性

D持久性:改变是永久性的

 

并发产生的问题:

丢失更新(中途写回,丢失了一个修改被覆盖)     不可重复读问题(第二次读的数据不一样,被中途修改)    脏  数据的读出(某个事务撤销的数据,扔被另一事务使用)

并发产生的问题的解决方案

问题:丢失更新,不可重复读的问题,脏数据的读出

方案:封锁协议

封锁协议:------》死锁 预防和手动解除

S封锁  读锁/共享

 X封锁   写/独占 /排他

一级封锁协议:修改数据前加x锁,可防止丢失修改(事务结束后才释放)

二级封锁协议:一级封锁协议基础上在读数据之前加S锁,可防止丢失修改,可防止读脏数据(读完就释放S锁)

三级封锁协议:一级封锁协议加上事务在读取数据之前先加S锁,直到事务结束才释放

两端协议。可串行化,可能发生死锁