`
marb
  • 浏览: 419842 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

什么是共享锁?什么是排他锁?

 
阅读更多

共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。
排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。
简要说明为什么会发生死锁?解决死锁的主要方法是什么?
若干事务相互等待释放封锁,就陷入无限期等待状态,系统就进入死锁
解决死锁的方法应从预防和解除的两个方面着手:
(1)死锁的预防方法:①要求每一个事务必须一次封锁所要使用的全部数据(要么全成功,要么全不成功)②规定封锁数据的顺序,所有事务必须按这个顺序实行封锁。
(2)允许死锁发生,然后解除它,如果发现死锁,则将其中一个代价较小的事物撤消
,回滚这个事务,并释放此事务持有的封锁,使其他事务继续运行。

分享到:
评论

相关推荐

    Oracle五种表级排他锁的总结和归纳

    共享行排他锁是一种介于行级共享锁和行级排他锁之间的锁,它允许其他事务添加行级共享锁,但不允许添加行级排他锁。拥有 SRX 锁的事务可以执行更新操作,但其他事务只能进行 `SELECT` 查询。加锁语句为 `Lock Table ...

    并发编程下的锁机制,乐观锁、悲观锁、共享锁、排他锁、分布式锁、锁降级原理篇

    本文将详细讲解几种常见的锁机制:悲观锁、乐观锁、共享锁和排他锁,并简要介绍分布式锁以及锁降级原理。 1. **悲观锁**: 悲观锁是一种保守的策略,它假设在读取数据时,数据极有可能被其他线程修改。因此,悲观...

    数据库锁(行锁,表锁,共享锁,排他锁)脏读、不可重复读、幻读和事物隔离级别

    在MySQL的InnoDB引擎中,支持行级锁(Row Locks)、表级锁(Table Locks),以及共享锁(Shared Locks)和排他锁(Exclusive Locks)。行级锁通过索引实现,如果SQL语句没有利用索引,则会升级为表锁。 行锁具有...

    7 数据库锁和表分区.ppt

    一旦一个事务获取了排他锁,其他事务就无法再获取共享锁或排他锁,直到持有排他锁的事务提交或回滚。 数据库锁的级别主要包括行级锁和表级锁: 1. **行级锁**:锁定的是数据表中的一行记录,如在Oracle中,行级锁...

    oracle数据库锁使用

    FOR UPDATE`),或者加行级排他锁,都将被阻止。 2. 排它锁(X锁):排它锁是最严格的锁,它提供独占的写权限,不允许其他事务进行任何读或写操作。通过`Lock Table TableName In Exclusive Mode`语句可以设置。...

    MySQL8.0锁机制和事务

    共享锁(S)允许拥有共享锁的事务读取该行数据,而排他锁(X)允许拥有排他锁的事务修改或删除该行数据。此外,InnoDB 存储引擎还支持意图锁,意图锁是表级锁,表明事务在后期会对该表的行施加共享锁或者排他锁。...

    SQLServer锁机制探究

    例如,案例1中,当事务T1执行UPDATE操作时,需要先获取排他锁,此时如果其他事务尝试加共享锁或排他锁,都会被阻塞,直到T1完成更新并释放锁。 死锁是并发控制中可能出现的一种现象,如案例4所示。当两个或更多事务...

    事务的四大隔离级别、数据库中的共享锁与排他锁、MySQL 的行级锁与表级锁

    数据库相关的笔记

    行业-58 多个事务更新同一行数据时,是如何加锁避免脏写的?l.rar

    拥有排他锁的事务可以读取和修改锁定的行,但在此期间,其他任何事务都无法获取共享锁或排他锁,从而阻止了其他事务对该行的读写操作。这种机制确保了在事务完成前,不会有其他事务对其进行修改。 数据库系统通常...

    数据库锁学习文档

    首先,数据库锁分为两大类:排他锁(X)和共享锁(S)。排他锁允许持有者对锁定资源进行读写操作,但不允许其他用户进行任何操作。共享锁则允许多个用户同时读取同一资源,但不允许写操作。在Oracle数据库中,锁...

    SQL的锁机制

    - **共享意图排他锁 (SIX)**:表示事务已获得共享锁,并打算进一步升级为排他锁。 ##### 2. 锁的层次结构 锁可以作用于不同的层次,如页级锁、表级锁等。 - **表级锁**:整个表被锁定,效率低但能防止所有并发...

    Oracle 锁机制问题详解

    只有在针对指定表的所有 DML 事务结束,并且记录上的排他锁以及表上的共享锁都被解除之后,我们才可以获得执行 DDL 命令所需的排他锁。如果无法获取所需的排他锁(通常是因为其他会话已经获得了用于 DML 语句的共享...

    DB2数据库锁升级分析及处理步骤

    在多用户环境下,当多个事务请求访问同一资源时,DB2会根据访问模式自动施加不同类型的锁(如共享锁或排他锁),以协调并控制对数据库资源的并发访问。锁升级是指当数据库系统检测到同一资源上的锁冲突频繁发生时,...

    MySQL锁详细介绍

    MySQL中的锁大致可以分为两大类:从数据库系统的角度,包括独占锁(排他锁)、共享锁、更新锁以及各种类型的意向锁;从锁的作用范围,可以分为行级锁、表级锁和页级锁等。下面我们将详细讨论这些锁的特性。 1. **...

    DB2锁相关情况介绍

    例如,一个读取共享锁(S)与另一个读取共享锁(S)是兼容的,但与一个排他锁(X)是不兼容的。 #### 五、DB2锁的实现方式 DB2通过以下几种方式实现锁: 1. **死锁检测与避免**:当检测到死锁时,DB2会选择回滚...

    sybase数据库查被锁的表.doc

    在 Sybase 数据库中,锁机制分为两种:共享锁(Shared Lock)和排他锁(Exclusive Lock)。共享锁允许多个事务同时读取同一个资源,而排他锁则排他事务访问该资源。锁机制可以在不同的粒度上生效,包括表锁、页锁和...

Global site tag (gtag.js) - Google Analytics