电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Mysql中悲觀鎖與樂觀鎖應用介紹

瀏覽:144日期:2023-03-06 14:25:42
目錄
  • 1.鎖
  • 2.悲觀鎖
  • 3.樂觀鎖
  • 4.如何選擇

1.鎖

? 生活中:鎖在我們身邊無處不在,比如我出門玩去了需要把門鎖上,比如我需要把錢放到保險柜里面,必須上鎖以保證我財產的安全。

代碼中:比如多個線程需要同時操作修改共享變量,這時需要給變量上把鎖(syncronized),保證變量值是對的。

數據庫表:當多個用戶修改表中同一數據時,我們可以給該行數據上鎖(行鎖)。

sql腳本

CREATE TABLE `sys_user` (  `id` bigint(20) NOT NULL COMMENT "主鍵ID",  `name` varchar(30) DEFAULT NULL COMMENT "姓名",  `age` int(11) DEFAULT NULL COMMENT "年齡",  `email` varchar(50) DEFAULT NULL COMMENT "郵箱",  `deleted` tinyint(1) DEFAULT NULL COMMENT "是否刪除",  `create_time` datetime DEFAULT NULL COMMENT "創建時間",  `create_id` bigint(20) DEFAULT NULL COMMENT "創建人",  `update_id` bigint(20) DEFAULT NULL COMMENT "操作人",  `update_time` datetime DEFAULT NULL COMMENT "更新時間",  `status` varchar(255) DEFAULT NULL COMMENT "狀態",  `dog` text DEFAULT NULL COMMENT "狗",  `version` int(11) DEFAULT NULL COMMENT "版本號",  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `sys_user`(`id`, `name`, `age`, `email`, `deleted`, `create_time`, `create_id`, `update_id`, `update_time`, `status`, `dog`, `version`) VALUES (1, "gukong", 19, "test1@baomidou.com", 0, NULL, NULL, NULL, NULL, NULL, NULL, 0);

2.悲觀鎖

? 當我們要對數據庫中的一條數據進行修改的時候,為了避免同時被其他人修改,最好的辦法就是直接對該數據進行加鎖以防止并發的發生。

為什么叫做悲觀鎖呢?因為這是一種對數據的修改抱有悲觀態度的并發控制方式。我們一般認為數據被并發修改的概率比較大,所以需要在修改之前先加鎖。

數據庫中的行鎖,表鎖,讀鎖,寫鎖,以及 syncronized 實現的鎖均為悲觀鎖。

mysql開啟悲觀鎖,示例sql語句

--開啟事務BEGIN--對行加鎖SELECT * FROM `sys_user` where id = 1 for UPDATE--修改加鎖行的數據update sys_user set name = "gukong",age = 18 where id = 1;--提交事務commit;
--開啟事務BEGIN--對行加鎖SELECT * FROM `sys_user` where id = 1 for UPDATE--修改加鎖行的數據update sys_user set name = "kulilin",age = 20 where id = 1;--提交事務commit;update sys_user set name = "kulilin",age = 20 where id = 1;

3.樂觀鎖

? 樂觀鎖是對于數據沖突保持一種樂觀態度,操作數據時不會對操作的數據進行加鎖,只有到數據提交的時候才通過一種機制來驗證數據是否存在沖突。

樂觀鎖通常是通過在表中增加一個版本(version)或時間戳(timestamp)來實現,其中,版本最為常用。

樂觀鎖每次在執行數據的修改操作時,都會帶上一個版本號,一旦版本號和數據的版本號一致就可以執行修改操作并對版本號執行 +1 操作,否則就執行失敗。

樂觀鎖示例:

-- version = 0SELECT * FROM `sys_user` where id = 1 update sys_user set name="小明",version = version+1 and age = 20 where id = 1 and version = 0;-- version = 0 ,而此時version=1,更新失敗SELECT * FROM `sys_user` where id = 1 update sys_user set name = "小紅" version = version+1 and age = 25 where id = 1 and version = 0;

4.如何選擇

樂觀鎖適用于讀多寫少的場景,可以省去頻繁加鎖、釋放鎖的開銷,提高吞吐量

在寫比較多的場景下,樂觀鎖會因為版本不一致,不斷重試更新,產生大量自旋,消耗 CPU,影響性能。這種情況下,適合悲觀鎖

到此這篇關于Mysql中悲觀鎖與樂觀鎖應用介紹的文章就介紹到這了,更多相關Mysql悲觀鎖與樂觀鎖內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: MsSQL
主站蜘蛛池模板: 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 江苏齐宝进出口贸易有限公司 | 六维力传感器_三维力传感器_二维力传感器-南京神源生智能科技有限公司 | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 | 药品仓库用除湿机-变电站用防爆空调-油漆房用防爆空调-杭州特奥环保科技有限公司 | 防水接头-电缆防水接头-金属-电缆密封接头-不锈钢电缆接头 | 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 山东艾德实业有限公司| 玻璃钢罐_玻璃钢储罐_盐酸罐厂家-河北华盛节能设备有限公司 | 手持气象站_便携式气象站_农业气象站_负氧离子监测站-山东万象环境 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 地图标注-手机导航电子地图如何标注-房地产商场地图标记【DiTuBiaoZhu.net】 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 对夹式止回阀厂家,温州对夹式止回阀制造商--永嘉县润丰阀门有限公司 | 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 精密五金加工厂-CNC数控车床加工_冲压件|蜗杆|螺杆加工「新锦泰」 | POM塑料_PBT材料「进口」聚甲醛POM杜邦原料、加纤PBT塑料报价格找利隆塑料 | 阻垢剂-反渗透缓蚀阻垢剂厂家-山东鲁东环保科技有限公司 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | HEYL硬度计量泵-荧光法在线溶解氧仪-净时测控技术(上海)有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 干培两用箱-细菌恒温培养箱-菲斯福仪器| 北京办公室装修,办公室设计,写字楼装修-北京金视觉装饰工程公司 北京成考网-北京成人高考网 | 塑胶地板-商用PVC地板-pvc地板革-安耐宝pvc塑胶地板厂家 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 薄壁轴承-等截面薄壁轴承生产厂家-洛阳薄壁精密轴承有限公司 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 无刷电机_直流无刷电机_行星减速机-佛山市藤尺机电设备有限公司 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | 全自动包装机_灌装机生产厂家-迈驰包装设备有限公司 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 苏州伊诺尔拆除公司_专业酒店厂房拆除_商场学校拆除_办公楼房屋拆除_家工装拆除拆旧 |