当前位置:首页 > 黑客业务 > 正文内容

悲观锁(MySQL 乐观锁)

访客3年前 (2021-09-29)黑客业务626

悲观锁定是指对被外界修改的数据保持保守的态度,即在数据处理过程中锁定数据。这个功能需要依靠数据库提供的锁定机制,否则即使在系统中实现了锁定机制,也不能保证外部系统不会修改数据。

锁定模式

锁定模式。没有

无锁机构

锁定模式。阅读

Hibernate在读取记录时自动获取锁

即共享锁(s锁),也称为读锁。如果事务T获得了数据对象A上的共享锁(即把共享锁加到A上),那么其他事务只能获得A上的共享锁(S锁),而不能增加排他锁(X锁),直到A释放所有的共享锁。允许共享锁的事务只能读取数据,但不能修改数据。

锁定模式。写

Hibernate在插入更新记录时自动获取锁

也就是排他锁(x锁),排他锁也叫写锁。如果事务t获得了数据a的排他锁,那么t可以读写a,但是在t释放a的x锁之前,其他事务既不能获得a的共享锁,也不能获得a的排他锁。

锁定模式。升级

如果数据库系统支持悲观锁(如Oracle和MySQL),则执行select…for update语句(行级锁,其他事务不能更新,插入和删除语句),如果数据库不支持悲观锁(如Sybase),则执行普通select语句。

锁定模式。UPGRADE_NOWAIT

和锁定模式。升级具有相同的功能。此外,为Oracle数据库执行select…for update nowait语句。“nowait”意味着如果执行select语句的事务不能立即获得悲观锁,它将不会等待其他事务释放锁,而是立即抛出锁异常。

锁的演示

注意:Lock只对一个事务中操作的数据对象起作用,而不是对整个数据库起作用,而是锁定整个数据库。

打开两个SQL命令行操作界面,可以代表两个事务T1和T2。我们首先在两个接口上执行命令:启动事务;

在事务T1中,查询数据库中学号为“2015”的学生信息,并对操作数据添加悲观锁:从stu _ info中选择*进行更新,其中stu _ no =“2015”;。此时,我们可以查询相应的信息。

“for update”表示添加悲观锁。在这个查询之后,事务没有被提交,即锁没有被释放

在交易T2中,查询数据库中学号为“2016”的学生信息,并将悲观锁添加到操作数据中:从stu _ info中选择*进行更新,其中stu _ no =“2016”;。这时,我们也可以查询相应的信息。

交易尚未提交

在交易T2中,查询数据库中学号为“2015”的学生信息。这次做一个普通的不加锁的选择查询:从stu _ info中选择*其中stu _ no = " 2015。这时,我们也可以查询相应的信息。

交易尚未提交

在交易T2中,尝试查询数据库中学号为“2015”的学生信息,并在操作数据中添加悲观锁:从stu _ info中选择*进行更新,其中stu _ no =“2015”;。这时我们可以发现,相关信息并没有显示,而是在等待。当我们提交事务T1(即commit)时,数据对象“2015”在T1中释放悲观锁,T2事务可以查询相关信息,获得悲观锁。

如果我们改变第五步。在刚才的第五步中,我们在没有悲观锁的情况下修改了事务T1中学号为“2016”的学生信息,因为我们之前在事务T2中为该记录添加了悲观锁,并且该记录尚未发布,所以我们只能在T2提交后才能成功修改。

推荐教程:MySQL教程

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/69244.html

分享给朋友:

“悲观锁(MySQL 乐观锁)” 的相关文章

华流芒种是几月几号农历

芒种是二十四节气之一,大家对于二十四节气也已经非常熟悉了,但是芒种是哪一天还不是很清楚,今年的芒种是阳历6月5日,那么2020年芒种是农历几月几号呢?接下来我们就一起了解一下吧。     2020年芒种是农历几月几号...

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这 买猪肉时,根据肉的颜色、外观、气味等可以判断出肉的质量是好还是坏。优质的猪肉,脂肪白而硬,且带有香味。肉的外面往往有一层稍带干燥的膜,肉质紧密,富有弹性,手指压后凹陷处立即复原。 次鲜肉肉色较鲜肉暗,缺乏光泽,脂肪呈灰白色;表面带...

今天发生的重大新闻5条,国内新闻最新消息10条

近期发生的额十件大新闻,伊朗重申继续实施核计划。本·拉登被击毙,近期国内外新闻要近期。 被关闭·国家最高科学技术奖揭晓"青藏铁路工程"等获奖·广西陆川一在建楼面坍塌14名工人坠地受伤,文汇报,执政党民族解放党总统,到了主要内容介绍完。 这是初中作业吧!月1日—德国总理默克尔倡议成立联合国经济理事会。...

马来西亚dhl国际快递查询,国际快递订单号查询官网

物流集团Deutsche Post 国际DHL旗下公司,马来西亚,大概22号左右抵达当地关口。作业程序HONG查询 KONG-HONG KONG目的地马来西亚,至于查询的话,很方便的。也可以打电话咨询,然后点击查询就会有快递信息!通过快递官网查询物流的。一直查询不到相关信息!打开DHL官网,感激不尽...

关注主播不迷路顺口溜「经验」

主播聊天话术900句(关注主播不迷路顺口溜) 在日常生活中,我们能看到会说话的人总能受到更多人的欢迎,会说话的人,左右逢源,如鱼得水;不会说话的人,处处受限,寸步难行。而在直播行业,更需要会说话,直播间是一个主动的单项输出,主播输出了才能有更多的回应,隔着屏幕,输出内容能否得到回应,这更是对所有主...

西湖论剑 Flagshop 分析复现

本文首发于“合天智汇”公众号 作者:xiaoleung title: 西湖论剑 Flagshop 分析复现 date: 2020-10-13 13:12:04 tags: CTF 本文推荐实验 PWN综合练习(三) 实验:PWN综合练习(三)(合天网安实验室) CTF PWN进阶训练实...

评论列表

性许猫卆
2年前 (2022-06-22)

悲观锁定是指对被外界修改的数据保持保守的态度,即在数据处理过程中锁定数据。这个功能需要依靠数据库提供的锁定机制,否则即使在系统中实现了锁定机制,也不能保证外部系统不会修改数据。锁定模式锁定模式。没有无锁机构锁定模式。阅读Hiber

泪灼掩吻
2年前 (2022-06-22)

悲观锁定是指对被外界修改的数据保持保守的态度,即在数据处理过程中锁定数据。这个功能需要依靠数据库提供的锁定机制,否则即使在系统中实现了锁定机制,也不能保证外部系统不会修改数据。锁定模式锁定模式。没有无锁机构锁定模式。阅读Hibernate在读取记录时

青迟木緿
2年前 (2022-06-22)

只能在T2提交后才能成功修改。推荐教程:MySQL教程

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。