今天在做设计书的时候,遇到了这两个词:「悲观锁定」与「乐观锁定」,于是回了总结一下。

悲观锁定方式:

当我们在对数据库进行更新操作的时候,有时候我们为了防止冲突,使用数据库为我们

提供的,SELECT FOR UPDATE 语句 , 在更新前,先把数据锁上,然后再更新 。

以下这种方式就是悲观锁定。

(比如有一个人用 SELECT FOR UPDATE 检索出来了一组数据,然后再更新,

但是,就在他准备更新的时候,有点事,突然离开了,而且离开了很长时间,

那就悲哀了,因为如果他不进行UPDATE操作,没有人可以对这一组数据载进行操作。)

悲观锁定概念:

需要说明几点的是,  ① SELECT FOR UPDATE 锁定的是一组数据 ,而不是指 整个表 。同时悲观也不是我上面所说的悲哀的意思。② 悲观锁定是指对数据的冲突采用一种

悲观的 态度, 假定数据肯定会冲突,所以在查询时就把数据锁住了。 ③以上的操作分为

两步:锁定和更新 ,先是 SELECT FOR UPDATE 把检索出来的数据锁住,然后再对检索出来的数据进行 更新,如果检索出来后不更新,那么别人将无法操作者一组数据。这一组操作应该是在一组 事物中的,只有 SELECT FOR UPDATE 的人,才能对数据进行更新操作。

乐观锁定概念:

      而乐观,则认为数据一般不会发生冲突当更新时,才判断是否发生了冲突,让用户

决定冲突时如何去处理 !

乐观锁定方式:

关于乐观锁定的冲突判定有个两种方式,可以采用时间戳,也就是检索时取得上次更新 时间,更新时比较时间。还有一种类似的是采用版本戳,就是添加一个字段,从1开始递增。

SQL的「悲观锁定」与「乐观锁定」相关推荐

  1. [SQL指令]使用 PIVOT 和 UNPIVOT,「扭转」查询的结果。

    原文出处:[SQL指令]使用 PIVOT 和 UNPIVOT,「扭转」查询的结果. http://www.dotblogs.com.tw/mis2000lab/archive/2010/12/24/m ...

  2. 阿里云贾扬清:大数据+AI工程化,让数据从「成本」变为「资产」

    简介:近年来,数字经济发展迅速,企业转型背后频频涌现「数字力量」的身影.云计算.大数据.人工智能的快速融合形成了数字经济的新基建,也为数字经济发展带来了新的机遇. 近年来,数字经济发展迅速,企业转型背 ...

  3. 「CSDN 2020年度博客之星」总榜单在此揭晓

    诗歌合为事而作,文章合为时而著!! 历经海选评审,投票晋级 ,专家评审等阶段的激烈角逐,2020年终盛典 "博客之星"总评选终于在 2021 年 2 月 5 日完美的落下帷幕!! ...

  4. 自建纯净谷歌「GitHub 热点速览 v.21.35」

    作者:HelloGitHub-小鱼干 虽然 Google 搜索的结果不如百度搜索结果那般广告丛生,但是对于一心只想找到匹配结果的我们而言,推广的信息条目能免则免.whoogle-search 便是一个 ...

  5. 面试反杀「GitHub 热点速览 v.21.33」

    作者:HelloGitHub-小鱼干 作为一个应聘者,面试的时候经常会被面试官问:你有什么问题要问我吗?为了避免这种临时想不到问题的尴尬,reverse-interview-zh 会教你下反向操作,提 ...

  6. 从国企到互联网,一个初入职场将近一年半工作经验程序员的「得」与「失」

    写在前面 2020 年 7 月 29 日,我只身一人来到北京,开始人生中的第一份工作,在一家国企从事软件开发工作. 2021 年 6 月底,我从国企离职,然后进入了一家互联网公司,从事软件开发工作. ...

  7. 用 Python 快速转化「中文数字」和「阿拉伯数字」

    最初,我是在开发聊天机器人的时候用到这个功能,比如用户提问 一千米以内有哪些场地可用?,我需要在数据库中查询范围小于一千米的场地,SQL 语句大致为 WHEN distant<1000,但我只能 ...

  8. 如何利用 C# 爬取「当当 - 计算机与互联网图书销量榜」!

    前段时间我们介绍了如何利用 C# 语言来爬取"京东 - 计算机与互联网图书销量榜" 网页的方法,通过该方法,我们能够获得"京东"的图书销售排行榜数据. 可是,读 ...

  9. 如何利用 C# 爬取「猫眼电影:热映口碑榜」及对应影片信息!

    我们生活在一个快节奏的时代里,每天除了辛苦的提升自己,为生活打拼之外,偶尔的放松去看场电影也是必要的.可是能够抽出的时间有限,选择看哪部电影就是一个挠头的问题了. 幸好,有类似猫眼电影.豆瓣电影.淘票 ...

最新文章

  1. 二叉树的路径(根节点到叶节点)Binary Tree Paths
  2. mysql 开仓函数_MySQL函数大全 及用法示例
  3. 作为高管,你需要了解的五个ERP趋势
  4. 菜鸟,下一代分布式体系架构的设计理念
  5. 图片不显示问题 图片url监测改变问题
  6. 大数据-----软件开发模型(详细讲解)
  7. RepPoints(本质是可变形卷积DCN)再理解
  8. PyOpenGL之3D界面详解(二)
  9. MySQL DATE_ADD() 函数
  10. 【cocos2d-x从c++到js】13:回调函数2——JSCallbackWrapper
  11. bzoj千题计划227:bzoj1486: [HNOI2009]最小圈
  12. 动态添加table表格内容,填充审批意见。
  13. Flask留言板Demo
  14. 华为mate50会用鸿蒙系统吗,华为Mate50Pro概念机:瀑布环绕屏+鸿蒙系统,就算涨价我也劝你买...
  15. DataWhale_Pandas Task08 文本数据
  16. 5d4的白平衡模式_佳能5D4怎样调整白平衡?
  17. 拼多多又起一事:因为看到同事被抬上救护车我被拼多多开除了
  18. blender bpy
  19. QT 如何计算中英文字符串的长度
  20. 五类 六类网线相关知识

热门文章

  1. git钩子放服务器_Git代码自动化部署、Hook、钩子
  2. java8编程开发入门 李兴华_李兴华系列--JAVA详解视频(jdk1.8)及项目实战教程
  3. “人大女神”事件思考网络事件背后的教育文化
  4. Ruby在windows下配置所遇到的问题
  5. linux双系统安装nvidia,ubuntu 16.04(Windows 10双系统+grub引导)无法进入tt1~tt6(NVIDIA驱动安装相关-黑屏,login loop,分辨率)...
  6. vb串口 任意波特率_串口通讯基本知识
  7. Python培训班怎么选?
  8. oracle rollback 观察时间
  9. Binary XML file line #17vector tag requires viewportWidth 0
  10. sublime前端开发常用插件