数据库的锁机制

看了一些关于数据库锁机制的文章,涨了很多见识,在这里把自己的学到的简单总结归纳一下
1.数据库规定对于同一资源不能同时共存共享锁和排他锁。
2.共享锁兼容,两个共享锁是可以存在同一资源上的,表明共享锁不阻止 其它session同时读资源, 但阻止其它session进行update操作。
3.更新锁(为了解决死锁引进)
表示获取从共享锁到排他锁的资格。一个事物只能有一个更新锁获此资格。这样做比直接使用排它锁提高了效率。
4.共享锁和更新锁可以在同一个资源上,这说明它们是兼容的。
5.排它锁和更新锁是不兼容的,不能同时加在同一资源上。
6.意向锁
当一个表中的某一行被加上排他锁后,该表就不能再被加表锁。当需要加表锁,需要检查每一行是否有排它锁,这样会很麻烦且效率低下,可以直接判断是否有意向锁就可以确定表中是否有行数据有排它锁,提高了效率。
7.计划锁
DDL语句都会加Sch-M锁,该锁不允许任何其它session连接该表。用jdbc向数据库发送了一条新的sql语句,数据库要先对之进行编译,在编译期间,也会加锁,称之为:Sch-S,编译这条语句过程中,其它session可以对表tableA做任何操作(update,delete,加排他锁等等),但不能做DDL(比如alter table)操作。

参考文章:http://blog.csdn.net/samjustin1/article/details/52210125

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值