iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >数据库的S锁和X锁,两段锁协议
  • 685
分享到

数据库的S锁和X锁,两段锁协议

2024-04-02 19:04:59 685人浏览 泡泡鱼
摘要

基本的封锁类型有两种:排它锁(X锁)和共享锁(S锁).所谓X锁,是事务T对数据A加上X锁时,只允许事务T读取和修改数据A,...所谓S锁,是事务T对数据A加上S锁时,其他事务只能再对数据A加S锁,而不能加


基本的封类型有两种:排它锁(X锁)和共享锁(S锁).所谓X锁,是事务T对数据A加上X锁时,只允许事务T读取和修改数据A,...所谓S锁,是事务T对数据A加上S锁时,其他事务只能再对数据A加S锁,而不能加X锁,直到T释放A上的S锁。
若事务T对数据对象A加了S锁,则T就可以对A进行读取,但不能进行更新(S锁因此又称为读锁),在T释放A上的S锁以前,其他事务可以再对A加S锁,但不能加X锁,从而可以读取A,但不能更新A.

两段锁协议:

数据库的两段锁协议是指所有事务必须分两个阶段对数据项进行加锁和解锁

1.扩展阶段

在对任何数据项的读、写之前,要申请并获得该数据项的封锁。

2.收缩阶段

每个事务中,所有的封锁请求必须先于解锁请求。

例如:事务T遵循两段锁协议,其封锁协议为:

BEGIN TRANSACTioN;

LOCK(A);READ A; A := A + 100; WRITE A; LOCK(B); UNLOCK(A); READ(B), UNLOCK(B),;

COMMIT;     

可以证明:若并发执行的所有事务均遵守两段锁协议,则对这些并行事务的任何并行调度策略都是可串行化

需要说明的是,并发执行的所有事务若均遵守两段锁协议,只是这些事务的并行调度策略能可串行化的充分条件,不是必要条件。

两段锁协议与防止死锁的一次封锁法的区别:

一次封锁法要求事务必须一次对所有要使用到的数据项进行加锁,否则不能继续运行。

显然,一次封锁法符合两段锁协议,但是两段锁协议并不要求一次就要对所有需要用到的数据项进行加锁,因此遵守两段锁协议的事务有可能死锁


您可能感兴趣的文档:

--结束END--

本文标题: 数据库的S锁和X锁,两段锁协议

本文链接: https://www.lsjlt.com/news/40523.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL的两阶段加锁协议是什么
    MySQL的两阶段加锁协议是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。MySql(仅限innodb)的两阶段加锁(2PL)协议,而非两...
    99+
    2024-04-02
  • mysql中的排它锁x和共享锁s的介绍
    这篇文章主要介绍“mysql中的排它锁x和共享锁s的介绍”,在日常操作中,相信很多人在mysql中的排它锁x和共享锁s的介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”my...
    99+
    2024-04-02
  • 数据库锁表和解锁
    问题描述 在开发或生产环境中,我们经常会遇到数据库锁表的情况,一旦发生锁表,对业务将会产生很大的影响,本篇主要介绍如何判断数据库锁表和锁表后的处理。 mysql锁表处理 一、导致锁表的原因 锁表发生在insert update 、...
    99+
    2023-08-20
    数据库 mysql java sql oracle
  • mysql数据库中行级锁、表级锁和页级锁的区别是什么
    这篇文章主要介绍了mysql数据库中行级锁、表级锁和页级锁的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。按粒度可以分为:1、行级锁,MySQL中锁定粒度最细的一种锁,表示只针...
    99+
    2024-04-02
  • Oracle数据库表被锁怎么查询和解锁
    这篇文章主要介绍“Oracle数据库表被锁怎么查询和解锁”,在日常操作中,相信很多人在Oracle数据库表被锁怎么查询和解锁问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle数据库表被锁怎么查询和解锁...
    99+
    2023-07-05
  • S/4 HANA中的数据库锁策略是什么
    本篇文章给大家分享的是有关S/4 HANA中的数据库锁策略是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。S4 中的新的 MM 数据模型以及 HANA 的 Insert-o...
    99+
    2023-06-04
  • MySQL数据库中怎么实现全局锁和表级锁
    这篇文章给大家介绍MySQL数据库中怎么实现全局锁和表级锁,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. 全局锁全局锁是粒度比较大的锁,基本上也使用不上,就像我们家的大门一样,控制...
    99+
    2024-04-02
  • Oracle数据库表被锁如何查询和解锁详解
    目录1、锁表原因2、锁表查询的代码有以下的形式3、查看哪个表被锁4、查看是哪个session引起的5、杀掉对应进程6、如何避免锁表总结1、锁表原因 可能是修改表中的数据,忘了提交事务会造成锁表。 oracle数据库操作中...
    99+
    2023-03-08
    oracle表锁住了怎么办 oracle数据表被锁怎么办 oracle数据库被锁原因查询
  • MySQL数据库锁的实现
    目录1.什么是锁2.锁解决的问题3.并发访问相同记录的几种情况4.理解读锁和写锁4.1 读锁4.2 写锁5.表锁5.1 表级的读/写锁5.2 意向锁6.行锁6.1 记录锁6.2 间隙...
    99+
    2023-03-20
    MySQL 数据库锁 MySQL
  • Oracle数据库查看锁表语句和解锁的方法示例
    目录一、查看锁表语句二、解锁语句三、查看引起锁表的Sql语句总结 一、查看锁表语句 SELECT sess.sid, sess.serial#, lo.oracle_username, -- 登陆...
    99+
    2023-10-11
    oracle查看被锁的表和解锁 oracle怎么查看锁表 oracle解锁表命令
  • MySQL 数据库锁的实现
    目录1.什么是锁2.锁解决的问题3.并发访问相同记录的几种情况4.理解读锁和写锁4.1 读锁4.2 写锁5.表锁5.1 表级的读/写锁5.2 意向锁6.行锁6.1 记录锁6.2 间隙锁6.3 临界锁7.悲观锁和乐观锁7....
    99+
    2023-03-20
    MySQL 数据库锁 MySQL
  • 死锁之谜:探究数据库死锁的原因和解决方案
    数据库死锁是指两个或多个事务在同时执行过程中,由于互相等待对方释放锁而导致无限期等待的情况。这会导致事务无法继续执行,进而影响数据库的性能和可用性。 1. 数据库死锁的原因 数据库死锁通常是由以下原因引起的: 资源竞争: 当两个或多个...
    99+
    2024-02-05
    数据库死锁 事务 死锁检测 死锁预防 死锁恢复
  • 【数据库】MySQL中的锁机制
    MySQL中的锁机制 数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。 MySQL 数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎的锁定机制都是为各...
    99+
    2023-08-18
    mysql 锁机制 共享锁 排它锁
  • 数据库中各种带锁游标加锁的时机分析
    这篇文章主要讲解了“数据库中各种带锁游标加锁的时机分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库中各种带锁游标加锁的时机分析”吧!我建立了一个表并...
    99+
    2024-04-02
  • 如何理解数据库中的锁
    如何理解数据库中的锁,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。背景数据库中有一张叫后宫佳丽的表,每天都有几百万新的小姐姐插...
    99+
    2024-04-02
  • 数据库死锁:认识和应对数据库中的“卡顿”
    一、数据库死锁的成因 数据库死锁的根本原因在于两个或多个事务同时需要访问相同的资源,并且每个事务都持有对方需要的资源,从而导致彼此无法继续执行。这种现象称为“循环等待”,也称为“死循环”。 数据库死锁的常见成因包括: 事务未正确释放资...
    99+
    2024-02-05
    数据死锁 事务 资源 预防 演示代码
  • 解锁数据同步的力量:实时互联和协作
    数据同步的重要性 在当今快节奏、数据驱动的环境中,数据同步已成为实现组织成功至关重要的一环。通过实时更新和同步数据,企业能够做出基于最新信息的决策,提高效率,并改善客户体验。 数据同步的优势 实时互联:数据同步使不同系统和设备之间能够...
    99+
    2024-02-29
    数据同步 实时互联 协作 DevOps 云计算
  • 数据库锁的类型和作用是什么
    数据库锁有以下几种类型和作用:1. 共享锁(Shared Lock):也称为读锁,允许其他事务在共享锁被持有时也能获取共享锁,用于并...
    99+
    2023-09-21
    数据库
  • 数据库的锁机制是什么
    数据库的锁机制是一种用于保护数据库的一致性和并发操作的机制。它确保数据库中的数据在被多个并发事务访问和修改时保持一致性,避免数据的混...
    99+
    2023-09-20
    数据库
  • 数据库死锁:避免和解决数据库中的“数据僵持”
    1. 数据库死锁概述 数据库死锁是指两个或多个事物在等待对方释放锁并在等待过程中都无法进行进一步执行时出现的情况。死锁经常发生在多个事务都试图通过锁机制来控制对共享资源的访问的情况下。在死锁发生时,所有涉及的事务都会被阻塞,直到其中一个...
    99+
    2024-02-05
    数据库死锁 死锁原因 避免死锁 解决死锁 演示代码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作