锁定(lock)用来控制多个用户对表里相同数据的并行访问。如下表中的示例。
如果没有使用锁定来管理事务,则在9:04的时候,用户A检索id为1的c1列值时,将显示为20,用户A会发现他所做的更新丢失了,实际是被B所做的更新覆盖 掉了。
当我们引入锁定以后,则情况发生了变化,如下表所示。由于使用了锁定来管理事务的并发性,因此用户A在9:04时,检索c1列的值,将显示他所更新的10。
在锁定中,存在以下两种基本的模式。
(1)排他锁(Exclusive,简称X锁):一旦用户对某个资源添加了X锁,则其他用户都不能再对该资源添加任何类型的锁,直到该用户释放了资源上的X锁为止。
(2)共享锁(Share,简称S锁):一旦用户对某个资源添加了S锁,则其他用户都不能在该资源上添加X锁,只能添加S锁,直到该用户释放了资源上的S锁为止。
根据被保护的对象种类的不同,锁定可以分成多种类型,比如由于DDL引起的锁定、DML事务引起的锁定、分布式事务中涉及的锁定等。我们主要应该关注DML 事务引起的锁定。
(文章来自网络,如有侵权请来信告知,本站将在第一时间删除。)
总机:(010)-88589926,88589826,88587026 QQ讨论群:243729577 182441349 邮箱:cuug_bj@cuug.com
通信地址:北京市海淀区紫竹院路98号北京化工大学科技园609室(CUUG)邮政编码:100089
中国UNIX用户协会 Copyright 2010 ALL Rights Reserved 北京神脑资讯技术有限公司
京ICP备11008061号 京公网安备110108006275号