https://blog.csdn.net/weixin_30531261/article/details/79479895
数据库的锁:
- 共享锁(读锁)
一个事务对某个数据对象加了共享锁之后,该事物可以对数据对象进行读操作,同时其他事务可也以对这个数据对象加共享锁 - 排它锁(写锁)
一个事务对某个数据对象加了排它锁之后,该事物可以对数据对象进行读操作和写操作,同时不允许其他事务对他进行加排它锁。只能加共享锁,因此会产生脏读的问题。
** 一级封锁协议 是指,事务T在修改数据R之前必须先对其进行加X锁,直到事务T结束才释放,可以防止丢失更新的问题。
** 二级封锁协议 在一级封锁协议的基础上,规定对数据对象加排它锁的时候,不能加共享锁,以此解决了脏读的问题。
** 三级封锁协议** 是指,在以及封锁协议的基础上增加事务T在读取数据R之前必须先对其加排他,直到事务结束才释放,解决了不可重复读问题。