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

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL中的悲觀鎖與樂觀鎖

瀏覽:5日期:2023-10-11 14:21:26

在關(guān)系型數(shù)據(jù)庫中,悲觀鎖與樂觀鎖是解決資源并發(fā)場(chǎng)景的解決方案,接下來將詳細(xì)講解🔎一下這兩個(gè)并發(fā)解決方案的實(shí)際使用及優(yōu)缺點(diǎn)。

首先定義一下數(shù)據(jù)庫,做一個(gè)最簡(jiǎn)單的庫存表,如下設(shè)計(jì):

CREATE TABLE `order_stock` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ’ID’, `oid` int(50) NOT NULL COMMENT ’商品ID’, `quantity` int(20) NOT NULL COMMENT ’庫存’, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

quantity代表著不同商品oid的庫存,接下來OCC及PCC使用此數(shù)據(jù)庫進(jìn)行演示。

樂觀鎖 OCC

它假設(shè)多用戶并發(fā)的事務(wù)在處理時(shí)不會(huì)彼此互相影響,各事務(wù)能夠在不產(chǎn)生鎖的情況下處理各自影響的那部分?jǐn)?shù)據(jù)。在提交數(shù)據(jù)更新之前,每個(gè)事務(wù)會(huì)先檢查在該事務(wù)讀取數(shù)據(jù)后,有沒有其他事務(wù)又修改了該數(shù)據(jù)。如果其他事務(wù)有更新的話,正在提交的事務(wù)會(huì)進(jìn)行回滾。

即“樂觀鎖🔒”認(rèn)為拿鎖的用戶多半是會(huì)成功的,因此在進(jìn)行完業(yè)務(wù)操作需要實(shí)際更新數(shù)據(jù)的最后一步再去拿一下鎖就好。這樣就可以避免使用數(shù)據(jù)庫自身定義的行鎖,可以避免死鎖現(xiàn)象的產(chǎn)生。

UPDATE order_stock SET quantity = quantity - 1 WHERE oid = 1 AND quantity - 1 > 0;

樂觀并發(fā)控制多數(shù)用于數(shù)據(jù)爭(zhēng)用不大、沖突較少的環(huán)境中,這種環(huán)境中,偶爾回滾事務(wù)的成本會(huì)低于讀取數(shù)據(jù)時(shí)鎖定數(shù)據(jù)的成本,因此可以獲得比其他并發(fā)控制方法更高的吞吐量。

悲觀鎖 PCC

它可以阻止一個(gè)事務(wù)以影響其他用戶的方式來修改數(shù)據(jù)。如果一個(gè)事務(wù)執(zhí)行的操作讀某行數(shù)據(jù)應(yīng)用了鎖,那只有當(dāng)這個(gè)事務(wù)把鎖釋放,其他事務(wù)才能夠執(zhí)行與該鎖沖突的操作。

這種設(shè)計(jì)采用了“一鎖🔒二查🔍三更新”模式,就是采用數(shù)據(jù)庫中自帶 select ... for update 關(guān)鍵字進(jìn)行對(duì)當(dāng)前事務(wù)添加行級(jí)鎖🔒,先將要操作的數(shù)據(jù)進(jìn)行鎖上,之后執(zhí)行對(duì)應(yīng)查詢數(shù)據(jù)并執(zhí)行更新操作。

BEGINSELECT quantity FROM order_stock WHERE oid = 1 FOR UPDATE;UPDATE order_stock SET quantity = 2 WHERE oid = 1; COMMIT;

MySQL還有個(gè)問題是select ... for update語句執(zhí)行中所有掃描過的行都會(huì)被鎖上,這一點(diǎn)很容易造成問題。因此如果在MySQL中用悲觀鎖務(wù)必要確定走了索引,而不是全表掃描。

悲觀并發(fā)控制主要用于數(shù)據(jù)爭(zhēng)用激烈的環(huán)境,以及發(fā)生并發(fā)沖突時(shí)使用鎖保護(hù)數(shù)據(jù)的成本要低于回滾事務(wù)的成本的環(huán)境中。

OCC 和 PCC 優(yōu)缺點(diǎn)

OCC 優(yōu)點(diǎn)及缺點(diǎn)

【優(yōu)點(diǎn)】

樂觀鎖相信事務(wù)之間的數(shù)據(jù)競(jìng)爭(zhēng)(data race)的概率是比較小的,因此盡可能直接做下去,直到提交的時(shí)候才去鎖定,所以不會(huì)產(chǎn)生任何鎖和死鎖; 可以快速響應(yīng)事務(wù),隨著并發(fā)量增加,但會(huì)出現(xiàn)大量回滾出現(xiàn); 效率高,但是要控制好鎖的力度。

【缺點(diǎn)】

如果直接簡(jiǎn)單這么做,還是有可能會(huì)遇到不可預(yù)期的結(jié)果,例如兩個(gè)事務(wù)都讀取了數(shù)據(jù)庫的某一行,經(jīng)過修改以后寫回?cái)?shù)據(jù)庫,這時(shí)就遇到了問題; 隨著并發(fā)量增加,但會(huì)出現(xiàn)大量回滾出現(xiàn)。

PCC 優(yōu)點(diǎn)及缺點(diǎn)

【優(yōu)點(diǎn)】

“先取鎖再訪問”的保守策略,為數(shù)據(jù)處理的安全提供了保證;

【缺點(diǎn)】

依賴數(shù)據(jù)庫鎖,效率低; 處理加鎖的機(jī)制會(huì)讓數(shù)據(jù)庫產(chǎn)生額外的開銷,還有增加產(chǎn)生死鎖的機(jī)會(huì); 降低了并行性,一個(gè)事務(wù)如果鎖定了某行數(shù)據(jù),其他事務(wù)就必須等待該事務(wù)處理完才可以處理那行數(shù)據(jù)。

以上就是MySQL中的悲觀鎖與樂觀鎖的詳細(xì)內(nèi)容,更多關(guān)于MySQL 悲觀鎖與樂觀鎖的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 广州网站建设_小程序开发_番禺网站建设_佛山网站建设_粤联网络 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 金属切削液-脱水防锈油-电火花机油-抗磨液压油-深圳市雨辰宏业科技发展有限公司 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 臭氧实验装置_实验室臭氧发生器-北京同林臭氧装置网 | 电子天平-华志电子天平厂家 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 扫地车厂家-山西洗地机-太原电动扫地车「大同朔州吕梁晋中忻州长治晋城洗地机」山西锦力环保科技有限公司 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 环比机械 | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 蜜蜂职场文库_职场求职面试实用的范文资料大全 | X光检测仪_食品金属异物检测机_X射线检测设备_微现检测 | 商标转让-商标注册-商标查询-软著专利服务平台 - 赣江万网 | 手板_手板模型制作_cnc手板加工厂-东莞天泓 | 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 厂房出租-厂房规划-食品技术-厂房设计-厂房装修-建筑施工-设备供应-设备求购-龙爪豆食品行业平台 | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 绿萝净除甲醛|深圳除甲醛公司|测甲醛怎么收费|培训机构|电影院|办公室|车内|室内除甲醛案例|原理|方法|价格立马咨询 | 溶氧传感器-pH传感器|哈美顿(hamilton) | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 厂房出租_厂房出售_产业园区招商_工业地产 - 中工招商网 | 10吨无线拉力计-2吨拉力计价格-上海佳宜电子科技有限公司 | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 | 热风机_工业热风机生产厂家上海冠顶公司提供专业热风机图片价格实惠 | 合肥白癜风医院_合肥治疗白癜风医院_合肥看白癜风医院哪家好_合肥华研白癜风医院 |