
在多用户并发访问的数据库环境中,锁机制是保障数据一致性和完整性的基石。本文具体介绍南大通用GBase 8s 数据库(gbase database)V8.8中的锁类型、分类等,方便大家快速了解和上手实践。
锁的类型介绍
(1)共享锁(lock-S)
- 如果一个对象上没有排他锁,则共享锁可以加在该对象上
- 防止其他事务更新数据
- 但同时,其他事务可以读取该数据 (其他事务可以加共享锁)
- 多个事务可以在同一个对象上加多个共享锁
(2)排他锁 (lock-X)
- 如果记录上没有任何锁,排他锁才可以加在该对象上
- 一旦在记录上加了排他锁,则不能在该记录上增加任何锁了,直至锁释放
- 防止其他事务读取和更修数据
(3)更新锁 (lock-U)
- 在更新Cursor中使用
- 更新锁由cursors 含有 ‘for update’ 选项执行时产生的 ,只能在没有排他锁或者更新锁的记录上加更新锁
- 当锁定的记录真正执行的时候,更新锁将提升为排他锁
(4)专一锁 (lock-IX or IS)
- 由IDS自动分配
- 如果一条记录上的记录被更新,一个排他锁将分配在该记录上,同时将该记录的表上自动加上专一锁
- 这能保证没有session可以在该表上增加排他锁,只要该表中有记录被增加了排他锁
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69979120/viewspace-3178418/
,如需转载,请注明出处,否则将追究法律责任。