背景

一条数据不能同时被两个或者多个线程修改。保证数据的有效性。比如下订单后,扣库存数量就需要这样的保证。

过程

  • 数据库中数据

  • 测试方法1:testForUpdate1

    分析:代码在if判断处,打上断点。

  • 测试方式2:testForUpdate2

  • 测试过程描述
    先跑测试方法1,一直卡在断点处。这个时候直接执行测试方法2。

  • 测试结果

  • 测试结果分析
    由于测试方法1先把id为27的数据上锁。测试方法2能够读到数据,但是不能修改id为27的数据。

小结

记录对一个小知识的理解过程。select for update。 这是一个悲观锁。它解决了什么问题呢?并发问题。那还有其他方式解决吗?可以使用乐观锁的方式。如果是集群或者分布式环境,也可以尝试使用分布式锁来解决并发问题。

Mysql的select for update理解相关推荐

  1. MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认(转)

    Select-For Update语句的语法与select语句相同,只是在select语句的后面加FOR UPDATE [NOWAIT]子句. 该语句用来锁定特定的行(如果有where子句,就是满足w ...

  2. 【转】MySQL中select * for update锁表的问题

    MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...

  3. mysql begin end 用法_数据库:Mysql中“select ... for update”排他锁分析

    作者:志波同学来源:https://mp.weixin.qq.com/s/8uH-7TD9ZRG4NCya80mOHg Mysql InnoDB 排他锁 用法:select - for update; ...

  4. mysql update 排他锁_数据库:Mysql中“select ... for update”排他锁分析

    Mysql InnoDB 排他锁 用法: select - for update; 例如:select * from goods where id = 1 for update; 排他锁的申请前提:没 ...

  5. 数据库:Mysql中“select ... for update”排他锁分析

    Mysql InnoDB 排他锁 用法: select - for update; 例如:select * from goods where id = 1 for update; 排他锁的申请前提:没 ...

  6. MySql事务select for update及数据的一致性处理讲解

    MySQL中的事务,默认是自动提交的,即autocommit = 1: 但是这样的话,在某些情形中就会出现问题:比如: 如果你想一次性插入了1000条数据,mysql会commit1000次的, 如果 ...

  7. Mysql:select ...for update

    这几天遇到了select - for update的sql语句,决定整理一下mysql的两种锁机制. Mysql数据库有两种锁,一种是共享锁,一种是排他锁,这两种锁是针对InnoDB的,如果是MyIS ...

  8. php mysql update语句_mysql SELECT FOR UPDATE 语句

    MySQL  使用SELECT - FOR UPDATE 做事务写入前的确认 以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE R ...

  9. 数据库中Select For update语句的解析

    ----------- Oracle -----------------– Oracle 的for update行锁 键字: oracle 的for update行锁 SELECT-FOR UPDAT ...

最新文章

  1. 【风控模型】融合模型Bagging构建信用评分卡模型
  2. Daimler CRM中间件 inbound 调试
  3. 关于深度学习,这些知识点你需要了解一下
  4. php按照文件名字排序,php readdir 排序问题,如何按照日期进行排序
  5. linux如何批量清理文件大小,Linux下自动清理超过指定大小文件的方法
  6. html 成新段落,HTML 段落
  7. springboot 循环引用问题
  8. 教你一招解决Git时提交到多个远程仓库
  9. php中传址调用,PHP中foreach引用传地址
  10. jquery-validate验证身份证
  11. Python 网络爬虫与数据采集(一)
  12. Django中render、render_to_response、HttpResponse、JsonResponse、Response的使用
  13. 西门子G120变频器初始化参数设置
  14. BFS(宽度优先算法)
  15. Android注册时总是出现验证码不正确问题的解决
  16. 如何将PPT进行压缩?PPT压缩的方法是什么
  17. 修改hosts文件屏蔽广告原理及实现
  18. 赛博朋克!灵感来自枫树种子荚的多翼滑翔机,空中可分体
  19. win10系统打不开计算机管理,win10电脑任务栏图标一直闪烁,任务管理器打不开...
  20. 如何运用netoffice,开发兼容多个版本的outlook插件

热门文章

  1. 父の天秤棒――清明祭り作者他郷客
  2. 深大算法实验四——流水线问题
  3. Python字符串f-string使用大括号{}
  4. WampServer配置PHP环境变量
  5. 百度apollo——启动脚本
  6. Postgresql顺滑升级步骤(11升级到14)
  7. python矩阵乘法 点乘_转(matlab和numpy矩阵乘法异同)
  8. 如何用内卷搞垮一个团队?
  9. SVM 支持向量机算法(Support Vector Machine )【Python机器学习系列(十四)】
  10. excel为单元格区域套用表格样式以及取消表格样式