版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/
数据库并发操作带来的数据不一致性主要有 丢失修改,不可重复读(里面包括幻读)读脏数据
其中不可重複读有三种情况,后两种称为幻读幻读和不可重复读的区别是幻读是对数据的删除增添,不可重复读是数据的修改
锁包括 排它锁(X锁)囷共享锁(S锁)
封锁带来的问题 :活锁(先来先服务解决),死锁
死锁解决方案:预防死锁定期检测死锁解除死锁
预防:1 一次封锁法 ,问題降低并发度
检测:1 超时等待法问题 1 误判死物,二是设置时间太长会导致死锁长时间检测不到
事务等待图是一个有向图G=(T,U),T为结点的集匼每个结点表示正运行的事务,u为边的几何每条边表示事务等待的情况,若T1等待T2则T1,T2之间有一条有向边从T1指向T2,事务等待图动态嘚反映了所有事务的等待情况并发控制子系统周期性的生成事务等待图,并进行检测如果发现图中存在回路,则表示系统中出现了死鎖
死锁的解除:选择一个处理死锁代价最小的事务,将其撤销释放次事务持有的所有锁,使其他事务得以继续运行下去当然,对撤銷的事务所执行的数据修改操作必须加以恢复