当前位置:Gxlcms > 数据库问题 > 数据库的锁

数据库的锁

时间:2021-07-01 10:21:17 帮助过:3人阅读

数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。


根据保护的对象不同,Oracle数据库锁可以分为以下几大类:
DML锁(data locks,数据锁),
用于保护数据的完整性;
DDL锁(dictionary locks,字典锁),
用于保护数据库对象的结构,如表、索引等的结构定义;


在我们实际应用开发中涉及较多的是DML锁,其他两种的话DBA会更加关心点;
DML锁的目的在于保证并发情况下的数据完整性,
主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。

参考http://zhidao.baidu.com/link?url=-MqhplcsaZoWog2TSLWbv7rTh6l-EfqvZZMOymNdDBZmypkoN9f-WAbLvHNgiS3lilu4y6QQSbcHowIGqrjuea


=============================================================

悲观锁(Pessimistic Lock),
顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,
所以每次在拿数据的时候都会上锁,
这样别人想拿这个数据就会block直到它拿到锁。
传统的关系型数据库里边就用到了很多这种锁机制,
比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。


乐观锁(Optimistic Lock),
顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,
所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,
可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,
像数据库如果提供类似于write_condition机制的其实都是提供的乐观锁。


本文出自 “w51spring” 博客,请务必保留此出处http://w51spring.blog.51cto.com/7524892/1772126

数据库的锁

标签:数据   库锁   

人气教程排行