排它锁 共享锁的区别

简介:
排它锁又称为写锁((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、规定封锁数据的顺序,所有事务必须按照这个顺序实行封锁

 

解除数据库死锁的方法:允许死锁发生,然后解除它,如果发现死锁,则将其中一个代价较小的事务撤销,回滚这个事务,并释放此事务持有的封锁,使其他事务继续进行。


相关文章
|
5月前
|
消息中间件 关系型数据库 Java
什么是意向锁?它和意向书有什么区别?
什么是意向锁?它和意向书有什么区别?
54 1
|
存储 关系型数据库 MySQL
分布式事物【悲观锁、乐观锁、读锁、写锁、间隙锁、临键锁 、 表锁、行锁、页面锁、 如何避免死锁】(二)-全面详解(学习总结---从入门到深化)
分布式事物【悲观锁、乐观锁、读锁、写锁、间隙锁、临键锁 、 表锁、行锁、页面锁、 如何避免死锁】(二)-全面详解(学习总结---从入门到深化)
49 0
|
15天前
|
关系型数据库 MySQL 数据库
|
9月前
|
SQL 数据库
初识MDL锁
初识MDL锁
|
5月前
|
数据库 数据安全/隐私保护
什么是行级锁和表级锁
什么是行级锁和表级锁
37 0
|
5月前
|
SQL 存储 关系型数据库
MySQL 意向共享锁、意向排他锁、死锁
MySQL 意向共享锁、意向排他锁、死锁
55 0
MySQL 意向共享锁、意向排他锁、死锁
|
5月前
|
SQL 存储 关系型数据库
MySQL表锁、行锁、排它锁和共享锁
MySQL表锁、行锁、排它锁和共享锁
50 0
MySQL表锁、行锁、排它锁和共享锁
|
10月前
共享锁(读锁)和排他锁(写锁)
共享锁(读锁)和排他锁(写锁)
51 0
|
11月前
|
SQL Java 数据库连接
数据库相关锁总结(共享锁,排它锁,更新锁,意向锁,计划锁),看完这篇将会对锁产生更深的理解
数据库相关锁总结(共享锁,排它锁,更新锁,意向锁,计划锁),看完这篇将会对锁产生更深的理解
|
11月前
|
SQL 关系型数据库 MySQL
一分钟了解乐观锁、悲观锁、共享锁、排它锁、行锁、表锁以及使用场景
!! 背景:最近在各种群和博客里,又看见了什么[乐观锁]、悲观锁什么鬼的感觉很高级的词汇,于是乎今天对这几个概念进行整理一下,揭开它神秘的面纱,给大家提供一个基本参考。作为开发人员不管是用什么编程语言,我觉得这些是应该要掌握的。知其然,知其所以然。 锁机制是 MySQL 中用来保证并发访问数据库时数据一致性和完整性的重要机制。在并发访问中,多个事务可能同时对同一份数据进行操作。如果不采用锁机制,就会出现数据错乱和丢失的问题。MySQL 中的锁机制主要包括以下几种类型:
209 0