Chinaunix首页 | 论坛 | 博客
  • 博客访问: 432883
  • 博文数量: 239
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 2431
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-02 21:12
文章分类
文章存档

2008年(239)

我的朋友

分类:

2008-06-17 23:29:01

锁的类型

数据库系统使用锁来限制事务对数据的访问。任何事务在访问数据前,都要给数据加锁。事务能否被授予所申请的锁,与数据上是否存在锁以及锁的类型有关。

在数据库系统中,有以下两类比较常用的锁:

1)共享锁(shared lock

如果事务只是查询数据的内容,就可以申请共享锁。获得数据共享锁的事务,可以读取数据的内容,但不能更改。由于数据只是用作读取,因此一个数据上可以拥有多个共享锁,多个事务可以同时查询该数据的内容。

2)排它锁(exclusive lock

如果事务要更改数据的内容,就必须申请排它锁。获得数据排它锁的事务,可以更改数据的内容。任一时刻,一个数据上只能有一个排它锁,只允许一个事务更改数据的内容。

排它锁具有严格的使用限制,它和共享锁、其它的排它锁之间是互斥的。事务要成功地给数据加上排它锁,该数据上就不能存在共享锁、其它的排它锁;事务在获得数据上的排它锁之后,其它事务就不能再在数据上加共享锁、排它锁。

数据库系统不仅仅包含以上两种锁,在具体的实现时会根据需要创建多种锁。在下面一节中,我们会再讲述两种常用的锁:意向锁(intent lock)和更新锁(update lock)。

阅读(615) | 评论(0) | 转发(0) |
0

上一篇:6.3.2 锁的粒度

下一篇:6.3 锁机制

给主人留下些什么吧!~~