Mysql的select for update理解
背景
一条数据不能同时被两个或者多个线程修改。保证数据的有效性。比如下订单后,扣库存数量就需要这样的保证。
过程
数据库中数据
测试方法1:testForUpdate1
分析:代码在if判断处,打上断点。测试方式2:testForUpdate2
测试过程描述
先跑测试方法1,一直卡在断点处。这个时候直接执行测试方法2。测试结果
测试结果分析
由于测试方法1先把id为27的数据上锁。测试方法2能够读到数据,但是不能修改id为27的数据。
小结
记录对一个小知识的理解过程。select for update。 这是一个悲观锁。它解决了什么问题呢?并发问题。那还有其他方式解决吗?可以使用乐观锁的方式。如果是集群或者分布式环境,也可以尝试使用分布式锁来解决并发问题。
Mysql的select for update理解相关推荐
- MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认(转)
Select-For Update语句的语法与select语句相同,只是在select语句的后面加FOR UPDATE [NOWAIT]子句. 该语句用来锁定特定的行(如果有where子句,就是满足w ...
- 【转】MySQL中select * for update锁表的问题
MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...
- mysql begin end 用法_数据库:Mysql中“select ... for update”排他锁分析
作者:志波同学来源:https://mp.weixin.qq.com/s/8uH-7TD9ZRG4NCya80mOHg Mysql InnoDB 排他锁 用法:select - for update; ...
- mysql update 排他锁_数据库:Mysql中“select ... for update”排他锁分析
Mysql InnoDB 排他锁 用法: select - for update; 例如:select * from goods where id = 1 for update; 排他锁的申请前提:没 ...
- 数据库:Mysql中“select ... for update”排他锁分析
Mysql InnoDB 排他锁 用法: select - for update; 例如:select * from goods where id = 1 for update; 排他锁的申请前提:没 ...
- MySql事务select for update及数据的一致性处理讲解
MySQL中的事务,默认是自动提交的,即autocommit = 1: 但是这样的话,在某些情形中就会出现问题:比如: 如果你想一次性插入了1000条数据,mysql会commit1000次的, 如果 ...
- Mysql:select ...for update
这几天遇到了select - for update的sql语句,决定整理一下mysql的两种锁机制. Mysql数据库有两种锁,一种是共享锁,一种是排他锁,这两种锁是针对InnoDB的,如果是MyIS ...
- php mysql update语句_mysql SELECT FOR UPDATE 语句
MySQL 使用SELECT - FOR UPDATE 做事务写入前的确认 以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE R ...
- 数据库中Select For update语句的解析
----------- Oracle -----------------– Oracle 的for update行锁 键字: oracle 的for update行锁 SELECT-FOR UPDAT ...
最新文章
- 【风控模型】融合模型Bagging构建信用评分卡模型
- Daimler CRM中间件 inbound 调试
- 关于深度学习,这些知识点你需要了解一下
- php按照文件名字排序,php readdir 排序问题,如何按照日期进行排序
- linux如何批量清理文件大小,Linux下自动清理超过指定大小文件的方法
- html 成新段落,HTML 段落
- springboot 循环引用问题
- 教你一招解决Git时提交到多个远程仓库
- php中传址调用,PHP中foreach引用传地址
- jquery-validate验证身份证
- Python 网络爬虫与数据采集(一)
- Django中render、render_to_response、HttpResponse、JsonResponse、Response的使用
- 西门子G120变频器初始化参数设置
- BFS(宽度优先算法)
- Android注册时总是出现验证码不正确问题的解决
- 如何将PPT进行压缩?PPT压缩的方法是什么
- 修改hosts文件屏蔽广告原理及实现
- 赛博朋克!灵感来自枫树种子荚的多翼滑翔机,空中可分体
- win10系统打不开计算机管理,win10电脑任务栏图标一直闪烁,任务管理器打不开...
- 如何运用netoffice,开发兼容多个版本的outlook插件