数据库事务3

锁有很多种分法:

  • 从封锁程度分:
    1、共享锁——要执行select语句需要先得到共享锁。
    2、独占锁——要执行update/insert/delete语句需要先得到独占锁。
    资源上已经放置的锁第二个事务进行读操作第二个事务进行更新操作
    立即获得共享锁 立即获得独占锁
    共享锁立即获得共享锁等待共享锁释放
    独占锁等待独占锁释放等待独占锁释放

    3、更新锁——在update的初始化阶段用来锁定可能要被更改的资源。一个资源上只能放置一个更新锁,这样有效的避免了死锁(如果只有共享锁和独占锁,则当多个更新同时操作同一个资源的时候,都会等着对方释放共享锁而陷入死锁。)。
    update的步骤如下:
    首先,获得一个更新锁,读取记录。
    接着,将更新锁升级为独占锁,执行更新操作。

 

  • 从操作资源的粒度分:
    数据库级锁、表级锁、行级锁等等。粒度越高,事务的隔离性越高,并发性越低。
    数据库还支持锁自动升级,将多个低粒度锁如行级锁升级成少量的高粒度锁如表级锁,以降低系统负荷。
  • 从应用程序的角度分: 
    悲观锁、乐观锁,详细见后面的介绍。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值