文档章节

数据库x锁和s锁

wayhk
 wayhk
发布于 2015/05/02 22:17
字数 323
阅读 18
收藏 0
点赞 0
评论 0

  共享锁(S锁):

  如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。

  排他锁(X锁):

  如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。

  简要说明为什么会发生死锁?解决死锁的主要方法是什么?

  若干事务相互等待释放封锁,就陷入无限期等待状态,系统就进入死锁

  解决死锁的方法应从预防和解除的两个方面着手:

  (1)死锁的预防方法:①要求每一个事务必须一次封锁所要使用的全部数据(要么全成功,要么全不成功)②规定封锁数据的顺序,所有事务必须按这个顺序实行封锁。

  (2)允许死锁发生,然后解除它,如果发现死锁,则将其中一个代价较小的事物撤消,回滚这个事务,并释放此事务持有的封锁,使其他事务继续运行。

 


本文转载自:

共有 人打赏支持
wayhk
粉丝 1
博文 36
码字总数 17367
作品 0
海淀
程序员
oracle的锁机制

oracle数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据...

柳哥 ⋅ 2014/06/29 ⋅ 0

数据库原理-事务基本概念

2018-1-9 by Atlas 数据库访问 read(X):把数据X,从磁盘的数据库中读到内存的缓冲区中。 write(X):把数据X,从内存的缓存区写回磁盘的数据库。 ACID性质 1、原子性(Atomicity) 一个事...

水天云黑白 ⋅ 01/09 ⋅ 0

事务并发的可能问题与其解决方案

一、多个事务并发时可能遇到的问题 Lost Update 更新丢失 a. 第一类更新丢失,回滚覆盖:撤消一个事务时,在该事务内的写操作要回滚,把其它已提交的事务写入的数据覆盖了。b. 第二类更新丢失...

傅易 ⋅ 2016/11/20 ⋅ 0

Oracle的TX锁(行级锁、事务锁)

问题:如何使用事务? 回答:一共有三步。 1、先开启事务。 •在Oracle中,事务是在上一次事务结束以后,数据“第一次”被修改时自动开启。 •在java中,设置连接为手动提交模式开始。代码:...

swearyd457 ⋅ 2013/10/10 ⋅ 0

数据库锁:乐观锁和悲观锁,共享锁和排它锁,行级锁和表级锁

一、悲观锁和乐观锁 我们经常在开发中遇到数据库并发处理时,处理不一致的问题。需要对程序做并发控制。 典型的并发时出现的冲突有两种: 1、丢失更新:一个事务的更新覆盖了其它事务的更新结...

vshcxl ⋅ 2016/07/13 ⋅ 0

数据库中的锁

锁的概述一. 为什么要引入锁多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票...

东风125 ⋅ 2015/11/22 ⋅ 0

数据库锁的相容性矩阵 解释

文章来自知乎 矩阵如下: 请求的模式 IS S U IX SIX X 意向共享 (IS) 是 是 是 是 是 否 共享 (S) 是 是 是 否 否 否 更新 (U) 是 是 否 否 否 否 意向排他 (IX) 是 否 否 是 否 否 意向排他...

iOS_愛OS ⋅ 2017/11/30 ⋅ 0

sqlserver里新增修改删除记录insert,update,delete时加的行锁还是表锁的问题(转)

参加的一个项目,开发的过程中,表结构变来变去的。碰到一诡异问题,客户要求,他们自己设计的一表中的删除标志字段IsDeleted去掉。原因居然是说Update效率低,Insert和delete效率高。Updat...

sprouting ⋅ 01/13 ⋅ 0

记录一次Mysql死锁排查过程

背景 以前接触到的数据库死锁,都是批量更新时加锁顺序不一致而导致的死锁,但是上周却遇到了一个很难理解的死锁。借着这个机会又重新学习了一下mysql的死锁知识以及常见的死锁场景。在多方调...

wooyoo ⋅ 2017/02/19 ⋅ 0

事务的并发控制

锁的机制就是来防止各个事务之间的相互影响,对并发访问进行控制,以保证数据一致性和完整性。当一个事务或操作企图防止另一个事务对其操作的对象产生影响时,该事务或操作就对该对象进行锁定...

phacks ⋅ 2015/08/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 23分钟前 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 49分钟前 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

C++难点解析之const修饰符

C++难点解析之const修饰符 c++ 相比于其他编程语言,可能是最为难掌握,概念最为复杂的。结合自己平时的C++使用经验,这里将会列举出一些常见的难点并给出相应的解释。 const修饰符 const在c...

jackie8tao ⋅ 昨天 ⋅ 0

聊聊spring cloud netflix的HystrixCommands

序 本文主要研究一下spring cloud netflix的HystrixCommands。 maven <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clo......

go4it ⋅ 昨天 ⋅ 0

Confluence 6 从其他备份中恢复数据

一般来说,Confluence 数据库可以从 Administration Console 或者 Confluence Setup Wizard 中进行恢复。 如果你在恢复压缩的 XML 备份的时候遇到了问题,你还是可以对整个站点进行恢复的,如...

honeymose ⋅ 昨天 ⋅ 0

myeclipse10 快速搭建spring boot开发环境(入门)

1.创建一个maven的web项目 注意上面标红的部分记得选上 2.创建的maven目录结构,有缺失的目录可以自己建立目录补充 补充后 这时候一个maven的web项目创建完成 3.配置pom.xml配置文件 <proje...

小海bug ⋅ 昨天 ⋅ 0

nginx.conf

=========================================================================== nginx.conf =========================================================================== user nobody; #......

A__17 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部