`
langzixin
  • 浏览: 127407 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

共享锁与排他锁

 
阅读更多

共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。

获准共享锁的事务职能读取数据,不能修改数据。

排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能在对A加任何类型的封锁。

获准排他锁的事务既能读取数据,也能修改数据。

 

数据库死锁的原因:若干事务相互等待对方释放封锁,就陷入了无限期等待状态,系统进入死锁。

 

预防数据库死锁的方法:1、要求一个事务必须一次性封锁所需要的所有数据(要么全成功,要么全部成功)

 2、规定封锁数据的顺序,所有事务必须按照这个顺序实行封锁

 

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

 

分享到:
评论

相关推荐

    mysql共享锁与排他锁用法实例分析

    排他锁又称为写锁,简称X锁,顾名思义,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁的事务是可以对数据就行读取和...

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

    数据库锁(行锁,表锁,共享锁,排他锁) 行锁 我们知道mysql的Innodb引擎是支持行锁的,与Oracle不同,mysql的行锁是通过索引加载的,即行锁是加载索引响应的行上的,要是对应的SQL语句没有索引,则会走表锁。 行锁...

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

    一、悲观锁 比较悲观,担心拿数据时被别人...1.共享锁 又称为读锁,可以查看但无法修改和删除的一种数据锁。(读取)操作创建的锁。其他用户可以并发读取数据, 但不能修改,增加,删除数据。资源共享。 select name

    校招应用软件开发工程师(Java)

    C、更新数据时,先获取共享锁,再将共享锁升级为排他锁,可以避免死锁 D、锁既可以用于表级别,也可以用于行级别; 18、在TCP传输协议中,( D)可用于 流量控制。 A、FCS B、重传 C、计时器 D、滑动窗口

    SQL 事务与锁 详解

    本篇博客旨在记录数据库中事务与锁机制的必要性,记录了如何在数据库中使用... 共享锁与排他锁2.2.2. 意向锁2.2.3. 死锁与等待锁2.2.4. 悲观锁与乐观锁3. 事务的ACID特性3.1. ACID特性3.2. 事务的隔离级别与并发问题3.

    数据库系统实现

    作者: Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom ...9.4.1 共享锁与排他锁 9.4.2 相容性矩阵 9.4.3 锁的升级 9.4.4 更新锁 9.4.5 增量锁 习题 9.5 封锁调度器的一种体系...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    8.4.1 共享锁与排他锁 287 8.4.2 排队机制 287 8.4.3 锁定争用 288 8.4.4 死锁 290 8.5 撤销概述 291 8.6 事务与撤销数据 292 8.7 管理撤销 293 8.7.1 与撤销相关的错误条件 294 8.7.2 用于撤销管理与保留...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

    8.4.1 共享锁与排他锁 287 8.4.2 排队机制 287 8.4.3 锁定争用 288 8.4.4 死锁 290 8.5 撤销概述 291 8.6 事务与撤销数据 292 8.7 管理撤销 293 8.7.1 与撤销相关的错误条件 294 8.7.2 用于撤销管理与保留...

    解析数据库锁协议和InnoDB的锁机制(全面解析行级锁、表级锁、排他锁、共享锁、悲观锁、乐观锁等常用锁)

    数据库通过锁以及锁协议来进行并发控制,解决并发事务带来的问题,本篇博文主要是解析数据库的锁协议和Mysql的默认存储引擎InnoDB的锁机制。 如果对事务隔离级别以及并发事务带来的问题不熟悉可以翻阅我的另外一篇...

    Mysql 行级锁的使用及死锁的预防方案

     名词解释:共享锁又叫做读锁,所有的事务只能对其进行读操作不能写操作,加上共享锁后其他事务不能再加排他锁了只能加行级锁。  用法: SELECT `id` FROM table WHERE id in(1,2) LOCK IN SHARE MODE 结果集的...

    mysql 悲观锁与乐观锁的理解及应用分析

    不要把他们与mysql中提供的锁机制(表锁,行锁,排他锁,共享锁)混为一谈。 一、悲观锁 顾名思义,就是对于数据的处理持悲观态度,总认为会发生并发冲突,获取和修改数据时,别人会修改数据。所以在整个数据处理过程...

    MySQL中的行级锁、表级锁、页级锁

    行级锁分为共享锁 和 排他锁。 特点 开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 二、表级锁 表级锁是MySQL中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单

    MySQL的InnoDB中的各种锁是怎么工作的

    排他锁`Exclusive Locks`(`X`)1.3 共享锁和排它锁的冲突情况1.4 `共享锁`和`排他锁`用途2. 表级意向锁2.1. 意向共享锁 `Intention Shared Locks` (`IS`)2.2. 意向排他锁 `Intention Exclusive Locks` (`IX`)3. 行锁...

    ReentrantLock源码的使用问题详解.docx

    什么是公平锁和非公平锁 ...对于公平的排他锁而言,先申请锁的线程会先获取锁,但是对于公平的共享锁而言,先申请锁的线程会先拥有获取锁竞争的权利,其他等待共享锁的线程也会被唤醒,有可能后唤醒的线程先获取锁。

    高并发情况下,MYSQL的锁等待问题分析和解决方案

    共享锁的特性为:不允许其他事务对该记录加排他锁,但是允许加共享锁。 保持时间:可重复度级别中共享锁会保持到事务结束。 排他锁(X锁) MYSQL的默认隔离级别(可重复度)中,UPDATE,INSERT和

    mysql数据库锁+优化.pdf

    排他锁(写锁):当一个数据被加了写锁,其他事务就不能对其上任何锁,不支持任何其他的读取与修改。加锁方式' select. for update按锁粒度分类1.全局锁:针对整个数据库执行全局层面的锁,上锁后任何对该数据库的DDL、DML...

Global site tag (gtag.js) - Google Analytics