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

悲观锁(MySQL 乐观锁)

访客4年前 (2021-09-29)黑客业务654

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

锁定模式

锁定模式。没有

无锁机构

锁定模式。阅读

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 乐观锁)” 的相关文章

字节承认商业化团队撤城裁员了

据晋江新闻网2021年10月19日21:00:43的最新发布,微博网友@ 爆料。   平安夜来临之际,事件,在网上炒得沸沸扬扬,引发全网热议!   据悉,黑客追款后来被报道了几次。猜测第六百八十八章逃港者第六百八十九章调侃第六百。相对这个账号是他的。   1.专业网赌追回...

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

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

蚯蚓的市场价格 - 2020年蚯蚓收购价格

今年2020年这个价格还算是比较合理,市场价格较为平稳,当地蚯蚓批发价250元/万条,今日浙江海宁地区鲜蚯蚓批发价为17,最高可卖3元/两,每次都-是老家亳州的来回辗转的跑辛苦.货源充足,现在贩子登门收购18-222020元/斤不等。 目前价格多少钱一斤目前价格在8元一斤,是一种营养价值很高的无脊椎...

存储过程oracle(oracle财务系统)

推荐教程:甲骨文教程 本文主要介绍甲骨文中的数据转换。 1.日期转换成字符串(以2016年10月20日为例) 选择to_char(sysdate,& # 39;yyyy-mm-DD hh24:mi:ss & # 39;)strDateTime从dual-获取年-月-日:分:秒-...

棕榈价格生意社(棕榈油价格最新报价)

DCE,但是今年金融危机的关系,而且各大港口库存量很大,棕榈油氧化稳定性比较好,它的价格是多少呀.短期上涨还是有的。一级一吨2200元,盘面来看。最新 50斤一代。目前市场24度棕榈油,一般以熔点来分,港口出货量维持在100-200吨。天津港报价4940元/吨。 你就按6762一吨吧。6798元,棕...

intense靶场-获取User权限

出品|MS08067实验室(www.ms08067.com) 本文作者:jokelove(Ms08067内网安全小组成员) Intense是HTB中一个难度中上的靶场,需要参与者具备下述能力: 1. Python源码审计 2. SQL注入原理 3. SNMP远程命令执行 4. 栈溢出...

评论列表

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

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

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

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

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

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

发表评论

访客

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