mysql中的for update怎么用


这篇文章主要介绍“mysql中的for update怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql中的for update怎么用”文章能帮助大家解决问题。 mysql中for update的用法是“select * from table where…for update”;用for update可以在查询的时候为行添加排它锁,当一个事务操作未完成的时候,其他事务可读取但是不能写入或者更新。本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。1.for update的使用场景如果遇到存在高并发并且对于数据的准确性很有要求的场景,是需要了解和使用for update的。for update 的作用是在查询的时候为行加上排它锁,当一个事务的操作未完成时候,其他事务可以读取但是不能写入或更新。比如涉及到金钱、库存等。一般这些操作都是很长一串并且是开启事务的。如果库存刚开始读的时候是1,而立马另一个进程进行了update将库存更新为0了,而事务还没有结束,会将错的数据一直执行下去,就会有问题。所以需要for upate 进行数据加锁防止高并发时候数据出错。记住一个原则:一锁二判三更新2.for update如何使用使用姿势:3.for update的锁表InnoDB默认是行级别的锁,当有明确指定的主键时候,是行级锁。否则是表级别。例子: 假设表foods ,存在有id跟name、status三个字段,id是主键,status有索引。例1: (明确指定主键,并且有此记录,行级开发云主机域名锁)例2: (明确指定主键/索引,若查无此记录,无锁)例3: (无主键/索引,表级锁)SELECT * FROM foods WHERE name=‘码农编程进阶笔记’ FOR UPDATE;例4: (主键/索引不明确,表级锁)4.for update的注意点1.for update 仅适用于InnoDB,并且必须开启事务,在begin与commit之间才生效。2.要测试for update的锁表情况,可以利用MySQL的Command Mode,开启二个视窗来做测试。关于“mysql中的for update怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注开发云行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: 解决MySQl查询不区分大小写的方法讲解

问题最近,在用SSH框架完成一个实践项目时,碰到了一个莫名其妙的Bug困扰了我好久,最后终于解决,记录如下。问题:同学在测试系统的时候突然发现,数据库保存的账户本来应该是admin,结果该同学用Admin账户居然登录成功了…………EXM???这样也行?好吧,我…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/28 17:16
下一篇 06/28 17:16

相关推荐