-mysql-锁机制分为表级锁和行级锁

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

mysql锁机制分为表级锁和行级锁 myISAM 引擎不支持事物!

排他锁:

Set Autocommit=0; // 把事物设置成手动事物!

排他锁又称为写锁,简称X锁 排他锁就是不能与其他锁并存,如A事务获取了一行数据的排他锁,事务就不能再获取该行的其他锁 必须等A事物的排他锁结束才能对一行数据进行增删改! mysql InnoDB引擎默认的修改数据语句,update,delete,insert都会自动给涉及到的数据加上排他锁,select语句默认不会加任何锁类型,如果加排他锁可以使用select ...for update语句

实验1:

下图两个用户都设置了手动事物 实验证明 A 把数据删了 B还能查到 B也要进行commit 提交或者roll回滚才能看到修改后的数据!

image

实验2:

A事物还在执行 B事就对这行数据进行操作 B事物卡住在这里!

image

实验3:

A把sid=1的数据改成了2
然后b要把sid的数据改成5 结果失败了 原因是已经没有sid=1 这条数据了
早就被A修改成2了
如果B的条件是 把sid=2的数据修改成5 那就能操作成功了!

image

实验4:

A把查询出来的数据加上排他锁
B也对这条数据去加排他锁
然后卡住了
要等A执行commit提交 A的排他锁才能结束!

image

下图用工具测试:

排他锁 A用户已经把这个表用排他锁锁住了
B用户去修改数据 然后卡在这里
要等A用户执行Commit 提交 B用户才能执行

image

再看看下图 结果是10
因为A用户把sid改成10
B用户的条件是sid=1
没有此条数据 所以修改不上!

image

共享锁:

Lock in share mode

第一 共享锁不能与排他锁共存在!

第二 共享锁在自动事物的情况下不会发生冲突

第三 共享锁在手动事物的情况下会出现一系列问题!

第四 共享锁可以多个用户对同一条记录锁定!

实验1:

在手动事物的情况下 A先对这一行数据进行了排他锁 然后B用户又去对这行数据进行共享锁 死活不给B用户操作 要等A用户把这个事物处理完才能给B用户进行排他锁! 反之结果还是一样 排他锁和共享锁不能共存!

image

image

实验2:

在手动事物下 A和B 都对这一条数据加上共享锁了 然后A事务要修改 会处于等待状态 他在等B用户来操作 只要B一来操作 系统就会把B用户掐死掉 先来的成功执行 后来的直接被干掉

image

实验3:

A用户对sid=1记录共享锁锁定
B用户对Sid=2记录共享锁锁定
然后A用户去修改sid=2的记录 卡住在那里
等B来操作 B一来操作 B就完蛋了!
这个故事告诉我们 被干掉总是B用户!

image

Sqlyog实验

双方各锁了一条数据

image

A对B锁定的数据进行更改
A处于等待
B对A的数据进行改变
B用户的锁干掉了

image

最后两个人都把事物提交或者回滚
就能查询出真实数据了!

image

后执行的遭殃 直接被干掉了!

image

转载于:https://my.oschina.net/kaige123/blog/1526942

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

托福试卷真题_干货解答考生疑惑,自考真题考过了还会在出吗?

重视真题!重视真题!重视真题!重要的话要说三遍。想自考的你们一定要注意,对于历年真题,从来都是“备考必做”的态度。做自考真题,除了可以让自己尽快熟悉考试题型和考点外,还有什么好处呢&#…

2016 ACM/ICPC Asia Regional Dalian Online

自己还是太菜,补题离不开题解。。。 但还是留个博客,万一以后忘了。。。 1001 Different Circle Permutation Polya定理,第一次遇见,学习了一下。不旋转的时候可以得到 f[i]f[i-1]f[i-2] 斐波那契数列,旋转后就可以通过…

天融信安全接入客户端_天融信提示您警惕物联网设备Ripple20漏洞风险

近日,天融信阿尔法实验室在JSOF实验室发布的由Treck公司开发的TCP/IP软件库中获取到一系列0day漏洞。JSOF实验室发布的这批漏洞共计19个,被JSOF研究人员称为"Ripple20"。受此软件库影响的产品数量估计超过数亿,其中包括智能家居设备…

GreenSock (TweenMax) 动画案例(二)

实现效果 动画分解 1.灯光闪烁2.文字出现3.水流4.心电图 知识点 1.AI(可尽情骚扰UI欧巴)2.SVG(了解基本的知识点)3.TweenMax(GreenSock)4.CSS animation 写在前面 写过第一篇文章后GreenSock (TweenMax) 动画案例(一)再回头看发现代码太多,根本没耐心去看完。所以每…

无限轮播图片的实现原理

无限轮播图相信是很多开发人员常用的一个功能,这里总结一下常用的两种方式的实现原理 一、使用UIScrollview实现无限轮播用UIScrollView实现,在scrollView上添加3个UIImageView,分别用来显示上一张图片,当前显示的图片&#xff0c…

开启 JM 的 trace 功能

[JM代码] 开启 JM 的 trace 功能本帖最后由 firstime 于 2009-6-15 11:16 AM 编辑 城里汉子说过: trace文件对分析码流结构很有效。我说的是trace文件,不是一步一步跟踪,就是编解码同时生成的 trace_enc.txt 这个文件,里面对每个比…

kafka入门介绍(转载)

Kafka作为一个分布式的流平台,这到底意味着什么? 我们认为,一个流处理平台具有三个关键能力: 发布和订阅消息(流),在这方面,它类似于一个消息队列或企业消息系统。 以容错的方式存储…

Cmd Markdown 编辑阅读器

欢迎使用 Cmd Markdown 编辑阅读器 我们理解您需要更便捷更高效的工具记录思想,整理笔记、知识,并将其中承载的价值传播给他人,Cmd Markdown 是我们给出的答案 —— 我们为记录思想和分享知识提供更专业的工具。 您可以使用 Cmd Markdown&…

Ubuntu GitLab CI Docker ASP.NET Core 2.0 自动化发布和部署(1)

相关博文: Ubuntu 简单安装和配置 GitLabUbuntu 简单安装 DockerUbuntu Docker 简单安装 GitLabUbuntu Docker 安装和配置 GitLab CI 持续集成服务器版本 Ubuntu 16.04 LTS。 经过上面四篇博文中的相关安装和配置,我们主要完成了两个容器的创建和运行&am…

django-ckeditor表情包修改

一、版本 Django1.11django-ckeditor5.2.2 二、关键步骤 1.删除旧的ckeditor静态文件 所在目录:项目目录下的static文件夹下的ckditor文件夹 rm ckeditor -rf 原因:在安装ckeditor后需要执行collectstatic命令,这个过程中的查找静态文件会去…

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.2.2 如何读入文本输入

2.2.2 如何读入文本输入 最简单的处理任意文本的方式就是使用在卷Ⅰ中我们广泛使用的Scanner类。我们可以从任何输入流中构建Scanner对象。或者,我们也可以将短小的文本文件像下面这样读入到一个字符串中: 在早期的Java版本中,处理文本输入的…

amap不同样式marker点_想出一手漂亮的图,CAD打印样式表你必须会!

好课推荐:1.CAD2014:点击查看2.室内CAD:点击查看3.CAD2019:点击查看4.CAD2018:点击查看5.【bim】revit:点击查看6.室内手绘:点击查看7.CAD三维:点击查看8.全屋定制:点击查…

研究人员发现Office Word 0Day攻击 这个漏洞绕过了word宏安全设置 绿盟科技、McAfee及FireEye发出警告...

这次的0Day漏洞确实很厉害,以往攻击者诱使用户点击Word文档,由于其中包含了恶意脚本,大多数需要用户启用了宏。但这次的漏洞不是,受害者无需启用宏,也会中招,而且漏洞覆盖Windows所有版本(包括W…

数据中心传输需求成以太网市场巨大推动力

近日,市场研究机构Infonetics作出评估称,数据中心以太网市场将迎来全面发展的势头,其驱动力则在于当前数据中心以太网络交换接口由10Gbps产品向25Gbps乃至50Gbps标准的大规模升级。 根据对2014年第三季度的市场销售情况研究,该公司…

主打“云安全” 迅雷系帝恩思登陆新三板

ZD至顶网安全频道 06月14日 综合消息: 6月14日上午,帝恩思(837018)敲响了登陆新三板的钟声。作为帝恩思的重要股东,迅雷(NASDAQ:XNET)CEO邹胜龙与帝恩斯董事长王宇杰、总经理许渊培等人一同参加了这一仪式。 帝恩斯是一…

UESTC 1636 梦后楼台高锁,酒醒帘幕低垂

题意&#xff1a;求一条路径&#xff0c;使得这条边连接1到n&#xff0c;求边权值的最大值与最小值的差 题解&#xff1a;最小生成树&#xff0c;对边权排序&#xff0c;可以枚举边的最大和最小的值&#xff0c;判断能否使得1和n连通 #include <bits/stdc.h> #define ll …

WORD列表缩进的文本起始点

Figure 1 Figure 2 Figure 3 编号位置以刻度尺为起点0.74厘米&#xff08;2个字符间距&#xff09;&#xff0c;文本缩进以刻度尺为起点2.96厘米&#xff08;8个字符间距&#xff09; 以上两者相减得到的值正好特殊格式悬挂缩进的值2.22厘米 Figure 4 上图看到&#xff0c;文本…

无人车火了 百度是如何做到的?

ZD至顶网服务器频道 03月02日 新闻消息&#xff08;文/于泽&#xff09;&#xff1a;百度无人车可谓狠狠的吸足了大众的眼球。一个问题逐渐出现在我们心中&#xff0c;为什么百度这样的互联网企业会推出无人车&#xff0c;似乎搜索引擎和无人车之间的关联度并不是很高。 谜题的…

Docker Compose 项目

二、Docker Compose 项目compose项目简介compose项目来源于之前的Fig项目&#xff0c;使用python代码编写。compose项目主要用于编排部署基于docker的应用。本身与docker&#xff0f;swarm配合度很高。Docker Compose 是 Docker 编排服务的一部分&#xff0c;可以让用户在其它平…