排它锁 共享锁的区别
2015-12-04 16:20
309 查看
排它锁又称为写锁((eXclusive lock,简记为X锁)),若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。它防止任何其它事务获取资源上的锁,直到在事务的末尾将资源上的原始锁释放为止。在更新操作(INSERT、UPDATE
或 DELETE)过程中始终应用排它锁。
相对于共享锁的区别:
共享锁又称为读锁(Share lock,简记为S锁),若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。
数据库死锁的原因:若干事务相互等待对方释放封锁,就陷入了无限期等待状态,系统进入死锁。
预防数据库死锁的方法:1、要求一个事务必须一次性封锁所需要的所有数据(要么全成功,要么全部成功)
2、规定封锁数据的顺序,所有事务必须按照这个顺序实行封锁
解除数据库死锁的方法:允许死锁发生,然后解除它,如果发现死锁,则将其中一个代价较小的事务撤销,回滚这个事务,并释放此事务持有的封锁,使其他事务继续进行。
或 DELETE)过程中始终应用排它锁。
相对于共享锁的区别:
共享锁又称为读锁(Share lock,简记为S锁),若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。
数据库死锁的原因:若干事务相互等待对方释放封锁,就陷入了无限期等待状态,系统进入死锁。
预防数据库死锁的方法:1、要求一个事务必须一次性封锁所需要的所有数据(要么全成功,要么全部成功)
2、规定封锁数据的顺序,所有事务必须按照这个顺序实行封锁
解除数据库死锁的方法:允许死锁发生,然后解除它,如果发现死锁,则将其中一个代价较小的事务撤销,回滚这个事务,并释放此事务持有的封锁,使其他事务继续进行。
相关文章推荐
- windows下安装VMware-workstation10 linux
- Service的使用
- 8天学通MongoDB——第六天 分片技术
- Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)
- ios 常用第三方类库
- Mybatis整合Spring
- 给 Android 开发者的 RxJava 详解
- 如何利用开源思想开发一个SEO友好型网站
- 8天学通MongoDB——第五天 主从复制
- Android开发之Tools使用
- eclipse中导入jar包源文件
- Android动画解析2-帧动画实现
- Android Studio的使用02-Can't resolve the symblo异常
- 【Leetcode】Find Minimum in Rotated Sorted Array
- cygwin
- 失效对象
- Unicode UTF-8 UTF-16编码问题
- linux命令
- C# WinForm获取程序所在路径方法
- Android调用WebService(图文教程)